Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi VirtualTreeView (https://www.delphipraxis.net/62361-virtualtreeview.html)

felix56 3. Feb 2006 13:29


VirtualTreeView
 
Hallo Zusammen

Ich habe ein Problem mit mit VirtualTreeView. Ich möchte aus Datenbanken Werte anzeigen. Root-Node und 1. Child-Node ist kein Problem. Ich bekomme aber einfach kein 2. Child-Node hin. Die Daten werden als 1. Child-Node in der Root angezeigt. Ich habe folgenden Code:

Delphi-Quellcode:
function AddVSTStructure(AVST: TCustomVirtualStringTree; ANode: PVirtualNode;
  ARecord: TTreeData): PVirtualNode;
var
 Data: PTreeData;
begin
 Result:=AVST.AddChild(ANode);
 Data:=AVST.GetNodeData(Result);
 Avst.ValidateNode(Result, True);
 Data^.FCaption:=ARecord.FCaption;
end;

ServiceTable.First;

 VST1.NodeDataSize:=SizeOf(TTreeData);
 VST1.BeginUpdate;
 while not PackageTable.Eof do
  begin
   PackageName:= PackageTable.FieldByName('INSTANCE').AsString;
   TreeData.FCaption:=(PackageName);
   Node:=AddVSTStructure(VST1,nil,TreeData);
   ServicePackageTable.First;
   while not ServicePackageTable.Eof do
    begin
     ServiceVerkTable.First;
     while not ServiceVerkTable.Eof do
      begin
       Instance:= ServiceVerkTable.FieldByName('INSTANCE').AsString;
       TreeData.FCaption:=(Instance);
       AddVSTStructure(VST1,Node,TreeData);
       ServiceTable.First;
       while not ServiceTable.Eof do
        begin
         Service:= ServiceTable.FieldByName('Service').AsString;
         TreeData.FCaption:=(Service);
         AddVSTStructure(VST1,Node,TreeData);
         ServiceTable.Next;
        end;
       ServiceVerkTable.Next;
      end;
     ServicePackageTable.Next;
    end;
   PackageTable.Next;
  end;
 VST1.EndUpdate;
 VST1.SortTree(0,sdAscending,True);
Wo mache ich den Fehler????
Bin für jede Hilfe dankbar.

Gruss
Felix

marabu 3. Feb 2006 14:39

Re: VirtualTreeView
 
Herzlich willkommen in der Delphi-PRAXiS, Felix.

Du musst mal genau hinsehen, wer der Vater deiner Kinder ist:

Delphi-Quellcode:
var
  Node, SubNode: PVirtualNode;
begin
// ...
     while not ServiceVerkTable.Eof do
     begin
       Instance := ServiceVerkTable.FieldByName('INSTANCE').AsString;
       TreeData.FCaption := (Instance);
       // den SubNode brauchst du später noch ...
       SubNode := AddVSTStructure(VST1, Node, TreeData);
       ServiceTable.First;
       while not ServiceTable.Eof do
       begin
         Service := ServiceTable.FieldByName('Service').AsString;
         TreeData.FCaption := (Service);
         AddVSTStructure(VST1, SubNode, TreeData);
// ...
Grüße vom marabu

felix56 8. Feb 2006 14:37

Re: VirtualTreeView
 
Hallo Marabu

Vielen Dank für die Hilfe. Das Problem ist gelöst.

Gruss
Felix


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz