Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - zuletzt aktive Form ermitteln


Bergmann89 - Mi 06.10.10 19:47
Titel: zuletzt aktive Form ermitteln
Hey,

ich hab mal wieder ein Problem, bei dem ich eure Hilfe brauch. Und zwar möchte ich bei einem Wechsel auf eine andere Form ermitteln, welche Form zuletzt aktiv war. Kleines Bsp.: Ich arbeite auf Form1 und hole dann Form2 in den Vordergrund, um damit zu arbeiten. Jetzt möchte ich wissen welche Form vor Form2 im Vordergrund war (also Form1). Ich könnte das ganze mit einem Timer machen, der die ganze Zeit prüft, welches Fenster im Vordergrund ist, aber das scheint mir nicht die besste Lösung. Ich suche also ein Ereigniss oder etwas Ähnliches, das ausgelöst wird, wenn ein anderes Fenster (meiner Anwendung) in den Vordergrund tritt.

MfG & Thx Bergmann.


Martok - Mi 06.10.10 19:56

Screen oder Application hat ein OnActivate oder so ähnlich. Du siehst, ich bin voll informiert :P

Weiß aber nicht, ob man noch rauskriegt was vorher aktiv war. Wenn nicht: an der Stelle einfach immer selber in eine lokale Variable speichern... der nächste Aufruf weiß dann ja, was vorher war.


jaenicke - Mi 06.10.10 20:05

WM_ACTIVATE wird sowohl an das Fenster geschickt, das deaktiviert wird, als auch an das, das aktiviert wird.

Ich vermute OnDeactivate und OnActivate werden dadurch ausgelöst. Ansonsten kannst du die Message einfach selbst abfangen.


Bergmann89 - Mi 06.10.10 20:08

hey,

OnActivate bzw. OnDeactivate hatteich schon ausprobiert, die werden jeweils nur einmal aufgerufen. Beim starten und beim beenden der Anwendung. ich versuchs gleich ma obs mit der Message anders is. Ich meld mich dann nochma.
€: sry, OnActivate und OnDeactivate funktionieren doch, aber nur innerhalb der Anwendung. Ich hatte das damals mit Fenstern auserhalb meiner Anwendung versucht un hab nich mehr dran gedacht. Dann is das Problem ja gelöst^^ DANKE!

MfG Bergmann.