这是一个拖拽内容到Word中的例子。如视频所示:
从程序中的Tree这拖内容到Word中。然后 在拖拽完成后事件中,记录日志。
拖拽
代码如下:
typeTForm1 = class(TForm)Panel1: TPanel;TreeView1: TTreeView;GroupBox1: TGroupBox;Memo1: TMemo;DropTextSource1: TDropTextSource;procedure FormCreate(Sender: TObject);procedure TreeView1MouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);procedure DropTextSource1AfterDrop(Sender: TObject; DragResult: TDragResult;Optimized: Boolean);privateDNode: TTreeNode;public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.DropTextSource1AfterDrop(Sender: TObject;DragResult: TDragResult; Optimized: Boolean);
begin
if DragResult=drDropCopy thenMemo1.Lines.Add('AfterDrop: ' + trim(DropTextSource1.Text));end;procedure TForm1.FormCreate(Sender: TObject);
vari: Integer;n: TTreeNode;
beginTreeView1.Items.BeginUpdate();n := TreeView1.Items.AddChild(nil, '月巴月巴');for i := 1 to 100 doTreeView1.Items.AddChild(n, '月巴月巴' + inttostr(i));TreeView1.Items.EndUpdate();n.Expanded := true;top := 0;left := screen.PrimaryMonitor.Width - Width;
end;procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
varn: TTreeNode;s: UnicodeString;
beginn := TreeView1.GetNodeAt(X, Y);if n <> nil thenbeginDNode := n;TreeView1.Select(DNode);s := DNode.Text + '说: 啥' ;DropTextSource1.UnicodeText :=s;DropTextSource1.Text :=s;DropTextSource1.Execute();end;end;end.