![]() |
TTreeview und Dragdrop
Hi DP'ler,
ich habe mal wieder ein kleines Problem weiss aber nicht warum sich der Code so verhält. Auf meiner Form existiert ein Treeview und eine listbox. In der Listbox habe ich Dragmode auf automatic stehen. Ziel soll sein den selektierten Eintrag aus der Listbox unter einem bestimmten Knoten im Treeview abzulegen. In meinem Treeview habe ich folgenden Code implementiert:
Delphi-Quellcode:
Das Problem ist, dass sich das Programm aufhängt sobald ich den Knoten mit dem Text Telegramme erreicht habe.
procedure Tform_so.TVDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean); var tn,tn1,tn2:ttreenode; begin tn := TV.GetNodeAt(X, Y); if assigned(tn) then begin if (tn.Text='Telegramme') then begin tn.DeleteChildren; tn2:=TV.Items.AddChild(tn,'Aktiv Ein:'+'1,2,5,8,21 '+'Aktiv Aus'+'1,2,5,8,22');//'Dies ist ein Text'; tn2:=TV.Items.AddChild(tn,'Passiv Ein:'+'1,2,5,8,21 '+'Passiv Aus'+'1,2,5,8,22');//'Dies ist ein Text'; tn2:=TV.Items.AddChild(tn,'SB: 0000 TSB: 0000 TYP: 0000 GRP: 0000');//'Dies ist ein Text'; TV.FullExpand; (Source as TListbox).EndDrag(False); accept:=true; application.ProcessMessages; end; end; end; Was mach ich falsch? Grüsse Rainer |
Re: TTreeview und Dragdrop
Funktioniert.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin TreeView1.DragMode := dmAutomatic; ListBox1.DragMode := dmAutomatic; ListBox1.Items.Add('A'); ListBox1.Items.Add('B'); ListBox1.Items.Add('C'); TreeView1.Items.Insert(nil, '1'); TreeView1.Items.Insert(nil, 'Telegramme'); TreeView1.Items.Insert(nil, '3'); end; procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := Sender = TreeView1; end; procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer); var DropItem, CurrentItem : TTreeNode; i : Integer; begin DropItem := TreeView1.GetNodeAt(X, Y); if assigned(DropItem) then begin if DropItem.Text = 'Telegramme' then begin DropItem.DeleteChildren; TreeView1.Items.AddChild(DropItem, ListBox1.Items.Strings[ListBox1.ItemIndex]); TreeView1.FullExpand; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:01 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