Einzelnen Beitrag anzeigen

Benutzerbild von JPSelter
JPSelter

Registriert seit: 24. Jan 2005
Ort: Attendorn/Sauerland
235 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: VirtualTreeView: Es klappt nicht ganz

  Alt 31. Mai 2006, 14:09
@generic: Von OnLoad und OnSave steht da aber nichts drin

Ich probiere nun, die Daten des Objekts einzeln in den Stream zu schreiben (erstmal nur der erste Parameter) mit

Delphi-Quellcode:
// save nodes to disk
procedure TForm1.VST1SaveNode(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Stream: TStream);
var
  Data: PTreeData;
  Len: integer;
begin
  Data := VST1.GetNodeData(Node);
  Len := Length(TSessionObject(Data.FObject).name);
  Stream.Write(Len, SizeOf(Len));
  Stream.write(PChar(TSessionObject(Data.FObject).name)^, Len);
end;
Funktioniert soweit. Nur wie bekomme ich die Daten da wieder raus?

Delphi-Quellcode:
// load nodes from disk
procedure TForm1.VST1LoadNode(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Stream: TStream);
var
  Data: PTreeData;
  Len: integer;
begin
  Data := VST1.GetNodeData(Node);
  Stream.read(Len, SizeOf(Len));
  SetLength(TSessionObject(Data.FObject).name, Len); //<---- Error: Ein Konstantenobjekt kann nicht als Var-Parameter übergeben werden
  Stream.read(PChar(TSessionObject(Data.FObject).name)^, Len);
end;
Das klappt irgendwie nicht, wegen der markierten Zeile. Wieso?
=JPSelter=

Visit www.ditonovia.de for our breathtaking movies: Herrin der Ringe (Fantasy 2005), Hemisphere (Science-Fiction 2004) & Braveknife (Parodie 2001) and more...
  Mit Zitat antworten Zitat