Einzelnen Beitrag anzeigen

marcus

Registriert seit: 13. Okt 2003
37 Beiträge
 
#1

VirtualStringTree und Query

  Alt 14. Sep 2004, 17:15
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
  Mit Zitat antworten Zitat