Ich glaube dem Thread-Ersteller geht es weniger um die Frage, wie man das Formular abblendet, sondern, wie man an die Information gelangt, wann ein eigenes modales Formular angezeigt wird.
Es gibt zwar in der Tat kein OnModalBegin/OnModalEnd unter FiremMonkey, aber FMX arbeitet auch selber mit dem TMessageManager, um im System bestimmte Botschaften zu senden und darauf reagieren zu können.
Da kannst Du Dich einfach einklinken, im Oncreate-Event der Mainform nimmst Du auf:
Delphi-Quellcode:
TMessageManager.DefaultManager.SubscribeToMessage (TFormBeforeShownMessage,
procedure (const sender: TObject; const M: TMessage)
begin
// Diese Prozedur wird nun immer aufgerufen, wenn eine Form im Programm Modal angezeigt wird
FadeTransitionEffect1.Enabled :=True; // z.B. ein TLayout als Parent in der Mainform, dass diesen Effekt hat
end);
Die
Unit System.Messaging wird benötigt.
Den Effekt kannt Du dann im Activate-Event der Mainform wieder ausschalten (oder Du schreibst Dich zusätzlich mit dem Message-Manager in die Activate-Botschaft ein).
Hinweis 1: Habe hier den DefaultMessage-Manager verwendet, bei Bedarf kann man einem eigenen erstellen ([Eigenwerbung an:
]falls Dir das Thema MessageManager nichts sagt, findest Du bei Bedarf in meinem neuesten FMX-Buch Informationen dazu in einen eigenen Kapitel zum TMessageManager (Kapitel 9)[/Eigenwerbung aus]).
Hinweis 2: Beim Aufruf von "ShowMessage" funktioniert das nicht, da das intern anders gehandelt wird, da musst Du selber eine ShowMessage-Funktion erstellen, die zuvor den Effekt macht und danach ihn wieder aufhebt.
Siehe auch anliegenden Screenshot.