Einzelnen Beitrag anzeigen

H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
257 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Fragen zu VirtualTreeView

  Alt 5. Okt 2023, 13:51
Leider habe ich noch eine Frage da ich etwas noch nicht verstehe - geht um das Speichern der Daten. Ich habe noch nie mit Streams gearbeitet, deswegen stehe ich da ein bisschen auf dem Schlauch.

Zum Speichern wird folgende procedure genutzt:

Delphi-Quellcode:
procedure TForm1.vstSaveNode(Sender: TBaseVirtualTree; Node: PVirtualNode;
 Stream: TStream);
var
  Data: PTreeData;
  Len: integer;
begin
  Data := vst.GetNodeData(Node);
  Len := Length(Data.TestStr);
  Stream.write(Len, SizeOf(Len));
  Stream.write(PChar(Data.TestStr)^, Len);
end;
Da sind die Daten aber nur ein String, wie geht das denn wenn es mehrere Strings sind ? So etwa ? Das kommt mir kompliziert vor:

Delphi-Quellcode:
procedure TSerienDB.VSTSaveNode(Sender: TBaseVirtualTree; Node: PVirtualNode; Stream: TStream);
var
  Data: PTreeData;
  Len: integer;
begin
  Data := VST.GetNodeData(Node);
  Len := Length(Data.FCaption);
  Stream.write(Len, SizeOf(Len));
  Stream.write(PChar(Data.FCaption)^, Len);
  Len := Length(Data.FColumn1);
  Stream.write(Len, SizeOf(Len));
  Stream.write(PChar(Data.FColumn1)^, Len);
  Len := Length(Data.FColumn2);
  Stream.write(Len, SizeOf(Len));
  Stream.write(PChar(Data.FColumn2)^, Len);
  Len := Length(Data.FColumn3);
  Stream.write(Len, SizeOf(Len));
  Stream.write(PChar(Data.FColumn3)^, Len);
end;
Wie ist das denn richtig ?

Gruss
Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat