Da habe ich doch gerade herausgefunden, dass man vom
System.Messaging.TMessageManager.DefaultManager auch benachrichtigt werden kann, wenn die Form erzeugt wird.
Logischer-(Emba-)weise wird in der versendeten Message
nicht die Form-Instanz mitgegeben (nachher kann man noch damit etwas sinnvolles anfangen, das muss sofort unterbunden werden
).
Als
Sender
bekommt man dafür die
Application
-Instanz geliefert. Die ist auch wichtig ... da kommt man immer so schwer dran ... aber im Kontext gesehen ist das richtig, denn
Application
schickt die Nachricht auf die Reise. Na gut.
Delphi-Quellcode:
TMessageManager.DefaultManager.SubscribeToMessage(
TFormsCreatedMessage,
procedure ( const Sender : TObject; const AMessage : TMessage )
begin
// hier irgendwas sinnvolles machen
end );
Ach ja, nicht verwirren lassen, dass die Nachricht
TFormsCreatedMessage
lautet und jeder aufmerksame Leser da eine Nachricht vermutet, die verschickt wird, wenn
alle Forms Created sind. Nein, die kommt logischerweise bei
jeder Form (die über
TApplication.CreateForm
erzeugt wird).
Irgendwie beschleicht mich das Gefühl, die haben sich da vertan und wollten die Nachricht am Ende der Schleife verschicken (da würde der Message-Name einen Sinn ergeben und auch das Fehlen der Form-Instanz)