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