Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Treeview - 2 Items (mit children) vertauschen (https://www.delphipraxis.net/74061-treeview-2-items-mit-children-vertauschen.html)

MisterNiceGuy 27. Jul 2006 15:11


Treeview - 2 Items (mit children) vertauschen
 
Hi ich steh vor dem Problem, dass ich net weiß, wie ich in einem Treeview 2 Items vertauschen kann.
Ich suche eine Art Procedure tauscheItems(item1,item2). Kann mir da jemand helfen? :)

marabu 27. Jul 2006 16:43

Re: Treeview - 2 Items (mit children) vertauschen
 
Hallo,

probiere es so:

Delphi-Quellcode:
item2.MoveTo(item1, naInsert);
Grüße vom marabu

MisterNiceGuy 27. Jul 2006 17:49

Re: Treeview - 2 Items (mit children) vertauschen
 
Das ist zwar schon eine große Hilfe, aber weiter komm ich damit trotzdem nicht. (Das ganze wird eine Drag and Drop Verschiebung im Treeview.)

Delphi-Quellcode:
    TargetNode := GetNodeAt(X,Y);
    SourceNode := Selected;
    TempNode := SourceNode;
    TargetNode.MoveTo(SourceNode,naInsert);
    TempNode.MoveTo(TargetNode,naInsert);
Jetzt hab ich nur das Problem, dass ich nicht in GetNodeAt(X,Y) und Selected; schreiben kann.
Was mach ich da?

marabu 27. Jul 2006 18:34

Re: Treeview - 2 Items (mit children) vertauschen
 
Drag-and-Drop in einer TreeView - da ist das Vertauschen zweier Knoten eher unüblich. Vielleicht möchtest du mit diesem Code ein wenig experimentieren?

Delphi-Quellcode:
procedure TDemoForm.TreeViewDragDrop(Sender, Source: TObject; X, Y: Integer);
var
  HT: THitTests;
  AttachMode: TNodeAttachMode;
  TargetNode: TTreeNode;
begin
  HT := TreeView.GetHitTestInfoAt(X, Y);
  TargetNode := TreeView.GetNodeAt(X, Y);
  if (htOnItem in HT) then
  begin
    AttachMode := naAddChild;
    TargetNode.Expand(False);
  end else if (htOnIndent in HT) then
    AttachMode := naInsert
  else if (htOnRight in HT) then
    AttachMode := naAdd
  else
    Exit;

  with Sender as TTreeView do
    Selected.MoveTo(TargetNode, AttachMode);
end;
Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz