Einzelnen Beitrag anzeigen

Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

TCollection-Object streamen und/od. an anderen Prozess geben

  Alt 21. Okt 2008, 23:05
huhu,

habe nun schon ne ganze weile gesucht aber für mein problem keine lösung gefunden: Ich will eine TCollection-descendant an einen anderen Prozess übergeben.
Mein erster Versuch war das Object über eine WM_CopyData zu übermitteln. Wenn ich jedoch in der in der Nachrichtenbehandlung auf das TCollection-Object zugreife gibts ne AV.

Was gibt es denn neben der (dp)Collection für möglichenkeiten eine Object zu exportieren (in einen Stream schreiben)?
Oder geht es vllt. doch mit WM_CopyData und ich stell mich nur zu doof an?

TIA

mein Versuch:
Der "Client"
Delphi-Quellcode:
var
  LCDStruct: TCopyDataStruct;
  LRes: Integer;
begin
  LRes := 0;

  LCDStruct.dwData := DAM_daLoad;
  LCDStruct.lpData := @ACollection;
  LCDStruct.cbData := SizeOf(ACollection);

  LRes := SendMessage(AHWnd, WM_COPYDATA, Application.Handle, Integer(@LCDStruct));
Der "Server"
Delphi-Quellcode:
procedure TfrmMain.WMCopyData(var Msg: TMessage);
begin
  MyActiveChild.MyColl.Assign(TMyCollection(PCopyDataStruct(Msg.LParam)^.lpData^)); <- Hier gibts ne AV
end;
  Mit Zitat antworten Zitat