![]() |
Löschen von TreeView-Items
Hi an alle!
Ich hab leider ein Problem beim löschen von TreeView. Ich habe die Variable "Node" (TTreeNode)" deklariert. Wenn ich auf das TreeView klicke, wird dieser Variable das Selektierte Node zugewiesen.
Code:
Jetzt aber mal zu meinem eigentliche Problem:
Node := TreeView.Selected
Ich will alle Subitems des Nodes löschen (sofern dieser welche hat), wenn er selekiert ist. Dazu hab ich folgendes versucht:
Delphi-Quellcode:
:?: Mir ist nicht klar, warum hier eine Fehlermeldung kommt. ("Der Listenindex überschreitet das Maximum (0)")
if Node.HasChildren then
begin For i := 0 to Node.Count - 1 do begin TreeView.Items.Delete(Node.Item[i]); If not Node.HasChildren then begin Break; TreeView.Items.Delete(Node); end; end; end; Wäre über jede Hilfe dankbar :spin: MfG |
Re: Löschen von TreeView-Items
Hallo,
Zitat:
Du solltest mal die Schleife Debuggen, bringt Dich sicherlich weiter. Grüsse, Daniel :hi: |
Du musst die Nodes rückwärts durchlaufen ;-)
Aus
Delphi-Quellcode:
wird
For i := 0 to Node.Count - 1 do
Delphi-Quellcode:
...:cat:...
For i := Node.Count - 1 downto 0 do
|
Und die Begründung:
Die Schleife läuft zum Beispiel von 0 bis 9. Es sind also 10 Elemente vorhanden. Löscht du jetzt eins sind es nur noch 9. Deine Schleife läuft aber bis 10, ergo greifst du auf ein Element zu, welches es nicht mehr gibt. |
Vielen Dank für solch eine schnelle Hilfe. Jetzt ist mir ein Lichtlein aufgegangen. Hab danach auch sofort noch einen anderen Fehler beseitigt.
Code:
Das konnte natürlich auch nicht funktionieren, aber ich hab es jetzt so hinbekommen, dass es funktioniert.
If not Node.HasChildren then
begin Break; TreeView.Items.Delete(Node); end; Nochmals vielen Dank für eure schnelle und vorzüglich Hilfe!!! Danke, Danke, Danke... :spin: MfG |
Eine kurze Frage noch. Wenn ich nur ein Selektiertes SubItem löschen will (was auch einwandfrei bei mir klappt), wie bekomme ich dann heraus, ob es das letzt SubItem ist?
Vielen Dank für weitere Hilfe! MfG |
Habs schon hinbekommen! :dancer: :bouncing4: :bounce1: :bounce2: :hello: :coder:
MfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 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 by Thomas Breitkreuz