Einzelnen Beitrag anzeigen

Benutzerbild von Coder90
Coder90

Registriert seit: 8. Nov 2004
Ort: Ebhausen, BW
44 Beiträge
 
Delphi 2007 Architect
 
#1

[VirtualTreeView] Daten später laden

  Alt 21. Aug 2006, 19:40
Hi
Ich hab ein VirtualTreeView in dem ich über Objekte Daten speichere.
Die Daten können ziemlich groß werden darum wäre es praktisch wenn sie erst geladen werden wenn sie gebraucht werden.
Das ist meine aktuelle ungünstige Laden procedure
Delphi-Quellcode:
procedure TMainForm1.VSTLoadNode(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Stream: TStream);
var
  Len: Integer;
begin
  TreeData := VST.GetNodeData(Node);
  TreeData.FObject := TNodeData.Create;

  with TNodeData(TreeData.FObject) do
  begin
    ...
    Stream.Read(Len, SizeOf(Len));
    SetLength(FText, Len);
    Stream.Read(PChar(FText)^, Len);
    ...
  end;
end;
In FText müssen viele Daten geladen werden.
Das soll erst geschehen wenn man auf einen Node klickt.
Man müsste also in VSTLoadNode die Position (der Daten im Stream) speichern um sie später laden zu können.
Ich glaube der Stream wird nach VSTLoadNode vom VST automatisch gefreet.
Man müsste ihn also auch vorher kopieren.
Ist sowas zu realisieren?
Ich dachte auch daran den ganzen Ladevorgang per XML zu machen.
Kommt drauf an was komplizierter ist.

MfG Coder
  Mit Zitat antworten Zitat