AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Firemonkey und OnModalBegin/OnModalEnd

Ein Thema von sintronic86 · begonnen am 4. Mai 2017 · letzter Beitrag vom 6. Mai 2017
Antwort Antwort
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#1

AW: Firemonkey und OnModalBegin/OnModalEnd

  Alt 5. Mai 2017, 18:33
@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.

Geändert von Harry Stahl ( 5. Mai 2017 um 18:43 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.252 Beiträge
 
Delphi 12 Athens
 
#2

AW: Firemonkey und OnModalBegin/OnModalEnd

  Alt 6. Mai 2017, 06:25
Ja sorry, ich hatte es nur überflogen.
Was ich meinte war den Mechanismus mit anonymous zu benutzen, kkönnte man ja auch in eigenen Klassen, abeleiteten Formen.

Delphi-Quellcode:
procedure StartTheModal;
begin

  ShowTheGreyBackground;

  MyForm.Execute(procedure(const AResult: TModalResult)
                           begin
                              case AResult)
                              end;

                              RemoveTheGreyBackground;
                           end);

  // Das Ganze ist dann non-blocking und läuft hier weiter
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz