Autor Beitrag
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: 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.

_________________
"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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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)
BeitragVerfasst: 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^^