![]() |
AW: TTreeView Frage
Irgendwie sieht mir das zu kompliziert aus. Ginge das nicht auch einfach so (aus dem Kopf getippt, daher ungetestet)?
Delphi-Quellcode:
[edit] Achja, BeginUpdate und EndUpdate sind wohl in der aufrufenden Routine besser aufgehoben als in der Rekursion. Trotzdem lass ich das erstmal so. [/edit]
procedure TForm1.ShowDirectory(_Tree: TTreeView; const _sVerzeichnis: string; _KnotenRoot: TTreeNode);
{$region 'Kommentar ShowDirectory( _Tree:TTreeView, _sVerzeichnis:string, _Eintrag:TTreeNode, )'} {* Beschreibung : Procedur baut aus einer Pfadangabe einen TreeView @param _Tree : der Tree der neu erstellt wird @param _sVerzeichnis : das QuellVerzeichnis aus dem der Tree entsteht @param _Eintrag : der erste Startknoten } {$endregion} var SearchRec : TSearchRec; KnotenNeu : TTreeNode; verz : string; begin Assert(Assigned(_Tree)); verz := IncludeTrailingPathDelimiter(_sVerzeichnis); _Tree.Items.BeginUpdate; try if FindFirst(verz + '*.*',faDirectory, SearchRec) = 0 then try repeat if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then begin KnotenNeu := _Tree.Items.AddChild(_KnotenRoot, SearchRec.Name); ShowDirectory(_Tree, verz + SearchRec.Name, KnotenNeu); end; until FindNext(SearchRec) <> 0 ; finally FindClose(SearchRec); end; finally _Tree.Items.EndUpdate; end; end; |
AW: TTreeView Frage
Moin Moin
Ich ruf den Thread hier wieder auf da ich denk das das zur selben Thematik bezüglich TreeView gehört. Undzwar habe ich meine Funktion zum Erstellen des TreeViews jetzt umgebaut und sie funktioniert tadellos. Kann mir jemand sagen welches Ereigniss ich nutzen muss, um bei einem Doppelklick auf einen Knoten, diesen in ein Memo oder ein ListView einfügen kann? (Das normale dblClick-Event kann ich nicht nutzen da dieses ja fur den ganzen Baum, sprich auch für den leeren weißen Bereich gilt, es aber nur beim dbl-klicken auf einen Knoten auslösen darf. Ich hoffe die Problematik wird einigermaßen klar mfg |
AW: TTreeView Frage
Doch, OnDblClick geht.
Delphi-Quellcode:
procedure TForm1.TreeView1DblClick(Sender: TObject);
var Item: TTreeNode; P: TPoint; begin //Maus- in Clientkoordinaten umrechnen P := Treeview1.ScreenToClient(Mouse.CursorPos); //Knoten an dieser Stelle ermitteln Item := Treeview1.GetNodeAt(P.X, P.Y); //wenn einer da -> ausgeben if Assigned(Item) then ShowMessage(Item.Text); end; |
AW: TTreeView Frage
Hey klasse das funktionert prima danke noch ma da wär ich niemals draufgekommen.
|
AW: TTreeView Frage
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:53 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