Forum: Programmieren allgemein
by brechi,
5. Jul 2021
TCallbackProcedure = procedure(Msg: string); stdcall;
TMyMsgEvent = procedure(Msg: string) of object;
// TCallbackProcedure != TMyMsgEvent
// ein "of object" fuegt einen (nicht sichtbaren) 1. neuen Parameter ein
// Technisch ist demnach das TMyMsgEvent ein
// TMyMsgEvent2 = procedure(Sender: TObject; Msg: string)
Forum: Programmieren allgemein
by brechi,
4. Jul 2021
Du musst das Objekt auch übergeben (vereinfacht) und nimm keinen string:
TCallbackProcedure = procedure(obj: Tobject; Msg: widestring); stdcall;
procedure ShowDLLMessageExt(obj: TObject; sMsg: widestring); stdcall;
begin
TintDll(obj).OnMyMsg(sMsg);
end;