Vielleicht habe ich mich ein wenig unverständlich ausgedrückt.
Also ich habe jetzt testeshalber einfach mal einen (sehr schlechten) undynamischen Code der 2 Level der oben genannten Struktur in die TreeView schreibt.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
aNode, pNode: TTreeNode;
//aktuellerNode, parentNode
begin
// TreeView aufbauen
TreeView1.Items.Clear;
dsCate.Close;
//ado dataset
dsCate.CommandText := '
select * from cate where cat_pid = 0';
dsCate.Open;
while not dsCate.Eof
do begin
aNode := TreeView1.Items.AddChild(
nil, dsCate.FieldByName('
cat_name').AsString);
query.Close;
query.SQL.Clear;
query.SQL.Add('
select * from cate where cat_pid = ' + IntToStr(dsCate.FieldByName('
cat_id').AsInteger));
query.Open;
if query.RecordCount > 0
then begin
pNode := aNode;
while not query.Eof
do begin
aNode := TreeView1.Items.AddChild(pNode,
query.FieldByName('
cat_name').AsString);
query.Next;
end;
end;
dsCate.Next;
end;
Allerdings soll das Programm am Ende beliebig viele "Parent-Level" besitzen und so kann ich das natürlich nicht hart-coden.
Versteht jemand mein Problem?