Hallo,
Ich will ein Array of Record machen, in dem alle ausgewählten (!) Nodes eines Tree sind. Dabei ist es wichtig, das es nur Nodes aus dem zweiten Level sind (also im Level-Property eine 1 steht) und ich die Relation zwischen Parent und Child habe. Zu diesem Zweck habe ich einen Record erstellt, der einen String "Name" enthält und die beiden Stringlisten "Images" und "Texts". Ich habe nun dieses dynamische Array von meinem Record und zähle mit folgender Prozedur meine Parent-Nodes:
Quelltext
1: 2: 3: 4:
| ParentCount := 0; for i := 0 to TreeView.Items.Count do if (TreeView.Items[i].Level = 0) then inc(ParentCount); |
Im ParentCount-Integer habe ich dann also die Anzahl an Parent Nodes. Dann setze ich die Länge meines Arrays auf diese Zahl.
Das ist die Vorgeschichte. Jetzt zum Hauptteil:
Ich will nun, wenn meine Parent-Node Childs enthält, die ausgewählt sind (MultiSelect ist im TreeView eingeschaltet), den Namen dieser Node (also den Text) in mein Array in das Feld Name schreiben, wobei der Index des Array gleich die Nummer der Parent-Node ist. Wenn die entsprechende Parent-Node keine ausgewählten Childs hat, soll auch kein Name ins Array (um Speicherplatz zu sparen).
Im nächsten Schritt, will ich alle ausgewählten Childs, die einen bestimmen ImageIndex haben in die Stringliste "Images" und alle ausgewählten Childs, die einen anderen ImageIndex haben in die Stringliste "Texts" schreiben.
Soweit das Ziel. Das Problem ist, daß ich nichtmal weiß, wie ich das erste Problem löse (Hat mein Parent nun Childs, die ausgewählt sind), geschweige denn einen Ansatz, wie ich das zweite Problem lösen kann (welche Childs sind ausgewählt und in welche Lsite gehören sie?).
Irgendwelche Vorschläge? Auf Code bin ich nichtmal angewiesen, es geht nur um das Lösungsprinzip...
Tschüß
Thomas
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk.