Hallo,
ich benutze die VirtualStringTree komponente als Übersichtsfenster, in dem verschiedene Datensätz einer Tabelle dargestellt werden. Wenn ich die VirtualStringTree direkt mit der Tabelle 'verknüpfe' funktioniert das ganze wunderbar (siehe code unten).
Delphi-Quellcode:
type
PListe = ^TListe;
TListe = packed record
Nummer : String;
Name : String;
end;
procedure TFrmMain.InitList;
begin
with MainStringTree do
begin
BeginUpdate;
Clear;
NodeDataSize := Sizeof(TListe);
RootNodeCount := TblMain.RecordCount;
EndUpdate;
end;
end;
procedure TFrmMain.MainStringTreeInitNode(Sender: TBaseVirtualTree;
ParentNode, Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
var Namensliste : PListe;
begin
Namensliste := Sender.GetNodeData(Node);
Initialize(Namensliste^);
Namensliste.Nummer := TblMain.FieldByName('nummer').AsString;
Namensliste.Name := TblMain.FieldByName('name').AsString;
if not TblMain.Eof then
TblMain.Next;
end;
Wenn ich jetzt aber in der procedur TreeInitNode einen
Query einfüge funktioniert das ganze leider nicht mehr, denn der
Query wird dann in jeder zeile ausgeführt und deshalb bekomme ich immer nur den ersten Datensatz der Tabelle. Ich müsste den
Query an eine andere Stelle plazieren, trotzdem wird in der procedur TreeInitNode auf ihn zugegriffen.
Hatte jemand schon mal ein ähnliches Problem?
Gruß
Marcus