![]() |
AW: ListBox-/View mit Dateien und Verzeichnissen anzeigen
Zur Rekursion gibt es genug Beispiel und Tutorials. Das sollte eigentlich reichen. Und wen du konkreten Code hast, kann man immer noch mal nachfragen.
|
AW: ListBox-/View mit Dateien und Verzeichnissen anzeigen
Ich habe mittlerweile alles durch. Mein letzter Code war dieser hier
![]() Keiner funktioniert. Es ist ja nicht so, dass ich nicht suche, so einer bin ich nicht, aber es funktioniert halt absolut nichts. |
AW: ListBox-/View mit Dateien und Verzeichnissen anzeigen
Und wie sollen wir dir jetzt helfen? Kein Code von dir und nur die Aussage das irgendeinanderer Code nicht "funktioniert".
|
AW: ListBox-/View mit Dateien und Verzeichnissen anzeigen
Ich weiß einfach nicht, wie man durch alle Nodes geht das ist alles.
|
AW: ListBox-/View mit Dateien und Verzeichnissen anzeigen
Dann zeig doch mal deinen bisherigen rekursiven Code, was du bisher hast und was wo nicht funktioniert. Wie sollen wir dir sonst helfen?:roll:
|
AW: ListBox-/View mit Dateien und Verzeichnissen anzeigen
Mein aktueller Code ist
Delphi-Quellcode:
Node := GtroCheckShellTreeView1.Items[0].getFirstChild;
while Node <> nil do begin // Pruefen, ob aktueller Node im Memo steht. Wenn ja, Node anchecken if Memo1.Lines.IndexOf(Node.Parent.Text + '\' + Node.Text) > -1 then GtroCheckShellTreeView1.SetNodeChecked(Node, True); Node := Node.GetNext; end; |
AW: ListBox-/View mit Dateien und Verzeichnissen anzeigen
Du hast doch gerade einen Link zu einem rekursiven Code gepostet, um einen Treeview durchzugehen und gesagt, der funktioniert nicht. Jetzt zeig den doch mal wie der bei dir aussieht und was wo nicht funktioniert.
|
AW: ListBox-/View mit Dateien und Verzeichnissen anzeigen
Den hab ich schon längst wieder gelöscht.
Aber da wo jetzt Node := Node.GetNext; steht stand vorher ein Check, ob der aktuelle Node Children hat und wenn ja, wurde ProcessChildren aufgerufen. Es fängt schon damit an, dass IrgendeinNode.Count immer 0 ist. Es funktionierte vorne und hinten nicht. |
AW: ListBox-/View mit Dateien und Verzeichnissen anzeigen
Also ohne konkreten Code von dir, ist keine Hilfe möglich. Wir können auch nur den schon verlinkten Code posten.
|
AW: ListBox-/View mit Dateien und Verzeichnissen anzeigen
Ich habe das jetzt noch einmal neu gemacht und es sieht jetzt so aus
Delphi-Quellcode:
Er geht jetzt tatsächlich durch alle Knoten und checkt auch genau die Knoten, die im Memo1 drin stehen.
function GetNodePath(aNode: TTreeNode; aDelimiter: String = ''): String;
begin Result := ''; while Assigned(aNode) do begin Result := aDelimiter + aNode.Text + Result; aNode := aNode.Parent; end; if Result[1] = '\' then Delete(Result, 1, 1); if Result = '' then Delete(Result, 1, 1); end; procedure TForm11.Button4Click(Sender: TObject); procedure ProcessChildren(aNode: TTreeNode; Recurse: Boolean); var i: Integer; s: String; begin for i := 0 to aNode.Count - 1 do begin s := GetNodePath(aNode, '\') + '\'; s := aSharedProcs.StringReplaceEx(s + aNode[i].Text, GtroCheckShellTreeView1.Items[0].Text, ''); if Form11.Memo1.Lines.IndexOf(s) > -1 then begin GtroCheckShellTreeView1.Items[i].Expand(True); // PROBLEM GtroCheckShellTreeView1.SetNodeChecked(aNode[i], True); end; if Recurse and aNode[i].HasChildren then ProcessChildren(aNode[i], Recurse); end; end; var i, j: Integer; s: String; Node: TTreeNode; begin for j := 0 to GtroCheckShellTreeView1.Items[0].Count do begin Node := GtroCheckShellTreeView1.Items[j]; s := aSharedProcs.StringReplaceEx(Node.Text, GtroCheckShellTreeView1.Items[0].Text, ''); if Form11.Memo1.Lines.IndexOf(s) > -1 then begin Node.Expand(True); GtroCheckShellTreeView1.SetNodeChecked(Node, True); end; ProcessChildren(Node, True); end; end; Es gibt jetzt nur noch ein Problem an der Stelle // PROBLEM. Es sollen nur die Knoten expandiert werden, wo auch Unterknoten checked sind. Das bekomme ich leider nicht hin :( Sowei ich weiß muss erst einmal alles expandiert werden, damit überhaupt etwas angecheckt werden kann. Denn was nicht sichtbar ist, kann nicht angecheckt werden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 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