这是一个拖拽内容到Word中的例子。如视频所示:
从程序中的Tree这拖内容到Word中。然后 在拖拽完成后事件中,记录日志。
拖拽
代码如下:
- type
- TForm1 = 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);
- private
- DNode: TTreeNode;
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.dfm}
-
- procedure TForm1.DropTextSource1AfterDrop(Sender: TObject;
- DragResult: TDragResult; Optimized: Boolean);
- begin
- if DragResult=drDropCopy then
- Memo1.Lines.Add('AfterDrop: ' + trim(DropTextSource1.Text));
-
- end;
-
- procedure TForm1.FormCreate(Sender: TObject);
- var
- i: Integer;
- n: TTreeNode;
- begin
- TreeView1.Items.BeginUpdate();
- n := TreeView1.Items.AddChild(nil, '月巴月巴');
- for i := 1 to 100 do
- TreeView1.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);
- var
- n: TTreeNode;
- s: UnicodeString;
- begin
- n := TreeView1.GetNodeAt(X, Y);
- if n <> nil then
- begin
- DNode := n;
- TreeView1.Select(DNode);
- s := DNode.Text + '说: 啥' ;
- DropTextSource1.UnicodeText :=s;
- DropTextSource1.Text :=s;
- DropTextSource1.Execute();
- end;
-
- end;
-
- end.