![]() |
Re: TreeView aus DB füllen
Delphi-Quellcode:
Fügt Rooteinträge hinzu, für Untereinträge weitere Schleifen...
DeineQuery.First
while not DeineQuery.Eof do // Alle Datensätze durchlaufen begin TreeView1.Items.AddChild(nil,DeineQuery.FieldByName('Feldname').AsString); Next; end; Gruss |
Re: TreeView aus DB füllen
Ok,
das funktioniert erst einmal. Und wie kann ich jetzt die ersten Untereinträger aus der zweiten Tabelle machen??? Hier mein code:
Delphi-Quellcode:
MFG Christian18
procedure TFMain.Button1Click(Sender: TObject);
begin Gauge1.MinValue:=1; Gauge1.MaxValue:=Table1.RecordCount; while not Table1.Eof do begin TreeView1.Items.AddChild(nil, Table1.FieldByName('Feldname').AsString); while not Table1.Next; Gauge1.Progress:=Gauge1.Progress + 1; end; end; |
Re: TreeView aus DB füllen
In dem du AddChild auf auf den Knoten anwendest, welchem du einen Unterknoten zuordnen willst.
Delphi-Quellcode:
[Edit: DelphiTags vergessen]
procedure TFMain.Button1Click(Sender: TObject);
var node: TTreeNode; begin Gauge1.MinValue:=1; Gauge1.MaxValue:=Table1.RecordCount; while not Table1.Eof do begin node:= TreeView1.Items.AddChild(nil, Table1.FieldByName('Feldname').AsString); while not Table2.Eof do begin TreeView1.Items.AddChild(node, Table2.FieldByName('Feldname').AsString); Table2.Next; end; Table1.Next; Gauge1.Progress:=Gauge1.Progress + 1; end; end; |
Re: TreeView aus DB füllen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Christian,
als erstes solltest du deine DataSets über die Eigenschaft MasterSource (TTable) bzw. DataSource (TQuery) hierarchisch verketten. Das Eintragen von Knoten auf beliebiger Ebene lässt sich folgendermaßen abstrahieren:
Delphi-Quellcode:
Die Initialisierung der TreeView kann im Ereignis OnCreate() der Form statt finden:
procedure AddNodes(nodes: TTreeNodes; nParent: TTreeNode; ds: TDataSet; fnDisplay, fnKey: String);
var iKey: Integer; sDisplay: String; begin nodes.BeginUpdate; with ds do try First; while not Eof do begin sDisplay := FieldByName(fnDisplay).AsString; iKey := FieldByName(fnKey).AsInteger; with nodes.AddChildObject(nParent, sDisplay, Pointer(iKey)) do HasChildren := True; Next; end; finally nodes.EndUpdate; end; end;
Delphi-Quellcode:
Wie du die Knoten auf den unteren Ebenen über das Ereignis OnExpanding() der TreeView eintragen lassen kannst, das zeigt die angehängte Demo.
procedure TDemoForm.FormCreate(Sender: TObject);
begin AddNodes(TreeView.Items, nil, QC, 'Company', 'CustNo'); end; Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:20 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