Hier noch eine Lösung auf Basis von System.Messaging.
Sehr coole Lösung.
Eine Frage hätte ich da aber noch.
Wie würdest du vorgehen, wenn man für das Open der Form noch Parameter mitgeben möchte und auch ein Result zurück bekommen möchte?
Also ich habe da was, bin mir aber nicht sicher ob das die eleganteste Lösung ist.
Delphi-Quellcode:
TMainFormParameter = class
ParameterIN,
ParameterOUT: String;
end;
TMainFormMessage = class( TMessage< TMainFormParameter>);
TChildFormParameter = class
ParameterIN,
ParameterOUT: String;
end;
TChildFormMessage = class( TMessage< TChildFormParameter>);
.....
var lParameter := TChildFormParameter.Create;
try
lParameter.ParameterIN := 'Ich komme aus MainForm und gebe dies als Parameter mit';
TMessageManager.DefaultManager.SendMessage( Sender, TChildFormMessage.Create( lParameter));
finally
ShowMessage( lParameter.ParameterIN + sLineBreak +
lParameter.ParameterOUT);
lParameter.Free;
end;
Aufgrund von "const M: TMessage", könnte ich Records nur als Konstante-Parameter mitgeben oder könnte man das auch irgendwie mit Records machen?