Hi,
vorab : Titel geht nicht aussagekräftiger, weil Problem zu kompliziert zu beschreiben.
Also : in einem VST müssen zusammengesuchte Daten aus 5 Tabellen angezeigt werden. Jetzt habe ich hierfür ein relativ umfangreiches SelectSQL zusammengebaut. Aber sieh an : es geht zu langsam.
Der sucht sich ca. 500.000 Datensätze zusammen. Erstens dauert das schon und zweitens braucht so viel auf einmal niemand. Um den Einfluss des VST auzuschliessen habe ich das mit IBExpert getestet. Geht zwar schneller, aber bei DAUs besteht immer noch die Gefahr, dass die wegen 30 Sek. und mehr den Netzstecker ziehen.
Im FormShow befülle ich nun zuallererst NodeLevel 0. Sonst nichts. Um das + zu erzwingen, obwohl noch gar keine Unterknoten da
sind steht da noch folgendes drin :
vstZeig.HasChildren [NodeBez] := true;
Im OnExpanding steht das :
Delphi-Quellcode:
DS.Close;
DS.SelectSQL.Text := ...
DS.Open;
while not DS.Eof do begin
NodeKopf := vstZeig.AddChild(NodeBez);
Data := vstZeig.GetNodeData(NodeKopf);
vstZeig.ValidateNode (NodeKopf, False);
KopfVar := TKopf.Create;
KopfVar.Nr := LeseIntFeld (DS,'NR');
Data^.Table := KopfVar;
DS.Next;
end;
Unterknoten werden keine angezeigt. Lediglich das + verschwindet. Steht derselbe Quelltext aber im OnShow, dann wird alles richtig angezeigt. Woran kann das liegen ? Ich bin per F8 die While-Schleife durchgehüpft. Das geht alles schon so wie es soll.