Thema: Delphi VST Speichern und Laden

Einzelnen Beitrag anzeigen

100nF

Registriert seit: 7. Nov 2004
639 Beiträge
 
#1

VST Speichern und Laden

  Alt 24. Feb 2008, 19:02
Hallo zusammen,

Also ich habe vor kurzem angefangen den virtualstringtree zu benützen.
funktioniert bis jetzt auch nicht schlecht, nur hab ichs noch nicht hinbekommen, den inhalt vom VST abzuspeichern und wieder zu laden. dazu verwende ich vst.savetofile und vst.loadfromfile.
hier ein bisschen code:
Delphi-Quellcode:
TArchiv = class
  private
    function GetPlaylistName: String;
  public
    Filename: String;
    Titel: String;
    Interpret: String;
    Album: String;
    Genre: String;
    Dauer: TTime;
    Bewertung: Integer;
    Counter: Integer;
    Datum: TDate;
    property Playlistname: String read GetPlaylistname;
  end;
Delphi-Quellcode:
procedure TForm1.VST1SaveNode(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Stream: TStream);
var
  daten: TArchiv; Len: Integer;
begin
  daten := TArchiv(vst1.GetNodeData(Node)^);

  Len := Length(Daten.Filename);
  Stream.write(Len, SizeOf(Len));
  Stream.write(PChar(Daten.Filename)^, Len);

  Len := Length(Daten.Titel);
  Stream.write(Len, SizeOf(Len));
  Stream.write(PChar(Daten.Titel)^, Len);

  Len := Length(Daten.Interpret);
  Stream.write(Len, SizeOf(Len));
  Stream.write(PChar(Daten.Interpret)^, Len);

  Len := Length(Daten.Album);
  Stream.write(Len, SizeOf(Len));
  Stream.write(PChar(Daten.Album)^, Len);

  Len := Length(Daten.Genre);
  Stream.write(Len, SizeOf(Len));
  Stream.write(PChar(Daten.Genre)^, Len);
end;

procedure TForm1.VST1LoadNode(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Stream: TStream);
var
  daten: TArchiv; Len: Integer;
begin
  daten := TArchiv(vst1.GetNodeData(Node)^);

  Stream.read(Len, SizeOf(Len));
  SetLength(Daten.Filename, len);
  Stream.read(PChar(Daten.Filename)^, Len);

  Stream.read(Len, SizeOf(Len));
  SetLength(Daten.Titel, len);
  Stream.read(PChar(Daten.Titel)^, Len);

  Stream.read(Len, SizeOf(Len));
  SetLength(Daten.Interpret, len);
  Stream.read(PChar(Daten.Interpret)^, Len);

  Stream.read(Len, SizeOf(Len));
  SetLength(Daten.Album, len);
  Stream.read(PChar(Daten.Album)^, Len);

  Stream.read(Len, SizeOf(Len));
  SetLength(Daten.Genre, len);
  Stream.read(PChar(Daten.Genre)^, Len);
end;
also ich habe keine ahnung ob das soweit schonmal stimmt. und noch weniger ahnung habe ich, wie ich die integer, TDate und TTime Werte speichern und laden muss.
hab auch mal gesucht im internet, aber hab nur eine lösung gefunden, welche aber mit records gemacht wurde. davon hab ich dann auch den code genommen und abgeändert.

Wäre sehr dankbar wenn ihr mir da weiterhelfen könntet!

mfg
urbanbruhin
  Mit Zitat antworten Zitat