Autor |
Beitrag |
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Mi 06.10.10 19:47
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.
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Mi 06.10.10 19:56
Screen oder Application hat ein OnActivate oder so ähnlich. Du siehst, ich bin voll informiert
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.
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: 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.
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
|