TNodeAttachMode identifies a new or changed tree node relationship.
TNodeAttachMode = ( naAdd, naAddFirst, naAddChild, naAddChildFirst, naInsert );
enum TNodeAttachMode { naAdd, naAddFirst, naAddChild, naAddChildFirst, naInsert };
The TNodeAttachMode type specifies the way a new or relocated tree node will be related to some other node.
Value |
Meaning |
naAdd |
The new or relocated node becomes the last sibling of the other node. |
naAddFirst |
The new or relocated node becomes the first sibling of the other node. |
naInsert |
The new or relocated node becomes the sibling immediately before the other node. |
naAddChild |
The new or relocated node becomes the last child of the other node. |
naAddChildFirst |
The new or relocated node becomes the first child of the other node. |
Delphi Examples:
{ The following code uses GetNodeAt to add a dragged node as a child of the node under the mouse when it is dropped. This example requires a populated TreeView. Also, the TTreeView DragMode property must be set to dmAutomatic, and the TTreeView OnDragOver event handler must be implemented to accept the drop. } procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer); var AnItem: TTreeNode; AttachMode: TNodeAttachMode; HT: THitTests; begin if TreeView1.Selected = nil then Exit; HT := TreeView1.GetHitTestInfoAt(X, Y); AnItem := TreeView1.GetNodeAt(X, Y); if (HT - [htOnItem, htOnIcon, htNowhere, htOnIndent] <> HT) then begin if (htOnItem in HT) or (htOnIcon in HT) then AttachMode := naAddChild else if htNowhere in HT then AttachMode := naAdd else if htOnIndent in HT then AttachMode := naInsert; TreeView1.Selected.MoveTo(AnItem, AttachMode); end; end; procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := Source is TTreeView; end;
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|