Hi,
ich möchte ein Object aus meinem Thread an den Hauptthread senden.
So hab ich mir das vorgestellt. (TLogMessage ist hier nur ein Beispiel, was ich zum Testen genommen habe).
Verschicken:
Delphi-Quellcode:
var
LogMsg: TLogMessage;
const
PM_MsgFromThread = WM_USER +4;
procedure TComThread.SendMsgToMain(LogText: string; Debug: Boolean);
begin
LogMsg:=TLogMessage.Create;
LogMsg.sLogText:=LogText;
LogMsg.bIsDebug:=Debug;
SendMessage(FMainFormHandle, PM_MsgFromThread, Integer(@LogMsg), 0);
end;
Empfangen im Hauptthread:
Delphi-Quellcode:
procedure Tfrm_main.LogMsgFromThread(var msg: TMessage);
var
P: TLogMessage;
fdebug: Boolean;
fLogText: string;
begin
P:=Pointer(msg.WParam);
fdebug:=P.bIsDebug;
fLogText:=P.sLogText;
//P.Free; //Ich müßte das Object auch wieder freigeben.
end;
Ich befürchte aber, dass ich es mal komplett falsch mache.
Auf P.bIsDebug kann ich noch zugreifen, und bei P.sLogText knallt es mit einer Zugriffsverletzung.