Delphi-Quellcode:
procedure TTMainForm.Button1Click(Sender: TObject);
var
Msg: TOpenChildFormMessage;
begin
Msg := TOpenChildFormMessage.Create;
Msg.ParameterIN := 'Ich komme aus MainForm und gebe dies als Parameter mit';
TMessageManager.DefaultManager.SendMessage(Self, Msg, False); // das False ist wichtig!
ShowMessage(Msg.ParameterOut);
Msg.Free;
end;
Delphi-Quellcode:
TOpenChildFormMessage = class(TMessage)
public
ParameterIN,
ParameterOUT: String;
end;
Delphi-Quellcode:
procedure MsgOpenChildForm(const Sender: TObject; const M: TMessage);
var
Msg: TOpenChildFormMessage;
begin
if M is TOpenChildFormMessage then
begin
Msg := TOpenChildFormMessage(M);
ShowMessage(Msg.ParameterIN);
TChildForm.OpenChildForm(Sender);
Msg.ParameterOut := 'Hallo Welt!';
end;
end;
Mit records ist auch möglich, dann musst du dir die Instanz auch merken und auf dein Record per TChildFormMessage.Value (Value ist dann der generische Typ) zugreifen.