AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [VST] Bei SaveNode mit TBitmap eine AV
Thema durchsuchen
Ansicht
Themen-Optionen

[VST] Bei SaveNode mit TBitmap eine AV

Ein Thema von Mikescher · begonnen am 29. Jul 2010 · letzter Beitrag vom 29. Jul 2010
 
Benutzerbild von Mikescher
Mikescher

Registriert seit: 3. Jun 2008
Ort: Offenburg
265 Beiträge
 
Delphi 2009 Professional
 
#1

[VST] Bei SaveNode mit TBitmap eine AV

  Alt 29. Jul 2010, 11:44
Hallo,

bei der VST-Komponente (jetzt Version 4.8.5) ist es ja möglich über das Event OnSaveNode / OnLoadNode die einem Node mitgegebenen Daten mitzuspeichern wenn man den VST speichert.

für einen Integer in meinem Datenrecord schreibe ich dann so etwas:

Delphi-Quellcode:
procedure TForm1.VSTLoadNode(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Stream: TStream);
var
  Data: PTreeData;
begin
  Data := VST.GetNodeData(Node);

  Stream.read(Data.Parts, SizeOf(Data.Parts));
end;

procedure TForm1.VSTSaveNode(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Stream: TStream);
var
  Data: PTreeData;
begin
  Data := VST.GetNodeData(Node);

  Stream.write(Data.Parts, SizeOf(Data.Parts));
end;
Das funktioniert auch.

jetzt habe ich das Problem das in meinem Datenrecord sich auch ein TBitmap befindet, dieses speichere/lade ich jetzt so:
Delphi-Quellcode:
procedure TForm1.VSTSaveNode(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Stream: TStream);
var
  Data: PTreeData;
  Len: integer;
begin
  Data := VST.GetNodeData(Node);

  Len := SizeOf(Data.Image);
  Stream.write(Len, Sizeof(Len));
  Stream.write(Data.Cover, SizeOf(Data.Image));
end;

procedure TForm1.VSTLoadNode(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Stream: TStream);
var
  Data: PTreeData;
  Len: integer;
begin
  Data := VST_Movies.GetNodeData(Node);

  Data.Cover := TBitmap.Create;
  Len := Stream.Read(Len, SizeOf(Len));
  Stream.read(Data.Image, Len);
end;
Jedoch sobald ich dann auf das Bitmap zugreifen wie ( wie hier: ) gibt es eine AV
Delphi-Quellcode:
procedure TForm1.VSTClick(Sender: TObject);
var
  Node: PVirtualNode;
  Data: PTreeData;
begin
  Node:=VST.FocusedNode;
  if not Assigned(Node) then
    Exit;
  Data := vst.GetNodeData(Node);
  Image1.Picture.Bitmap := Data^.Image;
end;
Schonmnal im vorraus Danke für jede Hilfe
... Mike
Mike
Operation gelungen, Patient tot.

http://www.mikescher.com
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz