TreeView下的一个节点拖上来,放到GroupBox里面
TreeView上的一个节点拖下来,放到GroupBox里面
在form画面上放一个Splitter,把画面分成两部分,左边是一个属性列表,右边是一个GroupBox,我的想法是用户用鼠标选中树中的一个Item,拖动到GroupBox中释放鼠标,然后GroupBox中就有了这个Item的内容。主要是拖动过程怎么控制,怎么在GroupBOx中定位?在GroupBox中鼠标放下来我想可以通过动态产生一些东西(例如文字图片),等控件来显示拖过来的item的内容,可是拖动过程我不知道如何实现。恳请大侠帮忙!在线等,有源码最好,或者提供例子,
------解决方案--------------------
在form画面上放一个Splitter,把画面分成两部分,左边是一个属性列表,右边是一个GroupBox,我的想法是用户用鼠标选中树中的一个Item,拖动到GroupBox中释放鼠标,然后GroupBox中就有了这个Item的内容。主要是拖动过程怎么控制,怎么在GroupBOx中定位?在GroupBox中鼠标放下来我想可以通过动态产生一些东西(例如文字图片),等控件来显示拖过来的item的内容,可是拖动过程我不知道如何实现。恳请大侠帮忙!在线等,有源码最好,或者提供例子,
------解决方案--------------------
- Delphi(Pascal) code
procedure TForm1.FormCreate(Sender: TObject); begin //TreeView1属性 // TreeView1.DragMode := dmAutomatic; //GroupBox1属性、事件 // GroupBox1.DragMode := dmAutomatic; // GroupBox1.OnDragOver := GroupBox1DragOver; // GroupBox1.OnDragDrop := GroupBox1DragDrop; end; procedure TForm1.GroupBox1DragDrop(Sender, Source: TObject; X, Y: Integer); begin OutputDebugStringA('22222222222222'); TGroupBox(Sender).Caption := Format('%d, %d: %s', [X, Y, TTreeView(Source).Selected.Text]) end; procedure TForm1.GroupBox1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin if Source is TTreeView then begin OutputDebugStringA('11111111111111'); Accept := True end; end;
------解决方案--------------------