Holla,
das einzig gute Tutorial zu TreeViews ist leider englisch, und das erschwert das Verständnis ungemein.
Also folgende Frage:
In einer
DB lege ich verschieden Kategorien ab, die jeweils für sich Unterkategorien und diese wieder Unter-Kategorien.
Nun will ich das ganze "visualisieren"; in einem TreeView.
Das erstellen der obersten Oberkategorien, die Childs vom Rootnode, gelingt noch ganz gut.
Dann will ich aber zu den jeweiligen 1. Childs deren Childs addieren. Zu dem Zweck folgende Schleife:
Delphi-Quellcode:
for i := 1
to Kategorien.Count
do
begin
// ZUERST schau ich, ob in der DB für das 1. Child überhaupt "untere" Childs existieren
// Das Feld Kategorie ist hierbei so aufgebaut:
// 10 Stellen, je zwei Stellen für eine Ebene, von links beginnend
// 0100000000 entspricht also dem ersten, obersten Node
// 0101000000 wäre dann das 1. Child des ersten, obersten Node
// 0102000000 ist das 2. Child
// 0200000000 ist das 2. Child vom RootNode
// mit dem folgenden SQL-Script finde ich also nacheinander alle Childs alle oberen Nodes
q_Kategorien.SQL.Text := '
SELECT * FROM kategorien WHERE ' +
'
kategorie LIKE "' + StrToInt(i) + '
%"';
q_Kategorien.Open;
end;
Nun steh ich vor dem Problem: Wie wähle ich jetzt das erste Child des Rootnodes in der TreeView selber aus.
Wenn das klar ist, kann ich dem schonmal ein weiteres Child zufügen.
Und dann die zweite Frage:
Ist das ganze sinnvoll, oder hab ich mich da ein bissel verzettel. Die maxmiale Tiefe entspricht ja 4 Ebenen. Ich müsste also 4 for-to-Schleifen ineinander verschachteln, um die TreeView zu füllen. Ist das auf performance-technischer Sicht sinnvoll, vertretbar?
Danke euch im Vorraus
tyler