@Harry Stahl:
Super! Das ist genau das, was ich gesucht hab. Schade zwar, dass das nur für den "Show"-Moment funktioniert und nicht für den "Hide"-Moment, aber ich werde es mal dem OnActivate versuchen.
Zählt denn der von dir beschriebene Aufruf jeweils NUR für die Form, in dessen OnCreate ich ihn ausführe? Dann könnte ich das ja einfach in meine TfDEFAULTForm einbauen.
Einmal ausgeführt reicht das aus. Immer wenn im Programm eine Form Modal angezeigt wird, erhält Deine Listener-Funktion die Nachricht darüber.
Das ist ja das geniale am TMessageManager. Man kann so sehr schön Abhängigkeiten von Units entkoppeln. Eine
Unit, die bestimmte Nachrichten braucht, schreibt sich dafür ein. Dafür braucht sie die anderen Units nicht zu kennen. Wenn man selber Nachrichten verschickt, kann man beim Senden auch Objekte als Parameter angeben. So kann eine anderer
Unit/Form auf einen bestimmten Zustand bzw. eine Änderung in einer anderen
Unit/Form reagieren, die sie gar nicht kennt.
Es lohnt, sich mit diesem Thema einmal ausführlicher zu beschäftigen.
Eine Klasse(n-Nachricht) wie "TFormAfterShownMessage" für das Hide-Event gibt es leider nicht. Hätte man implementieren können, hat man aber nicht. Könnte man zwar bei Bedarf selber nachrüsten (eine eigene Ableitung von TForm), aber das wäre vielleicht zuviel Aufwand. Das
Activate-Event der Mainform sollte da eigentlich schon ausreichend sein.