Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Herausfinden, ob Anwendung den Fokus hat
alias5000 - Fr 03.03.06 19:15
Titel: Herausfinden, ob Anwendung den Fokus hat
Hi!
Ich mach jetzt hier schon ne Weile an meinem Programm rum, bei dem folgendes wohl nicht ganz funtzt:
Ich merke mir über Application.OnActivate und OnDeactivate, ob die Anwendung den Fokus hat oder nicht (boolean Variable, iss ja logisch :wink: )
Blöderweise funktioniert dies irgendwie nicht, obwohl der entscheidende Codeteil sowas von richtig ist...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TMainForm.ApplicationEvents1Activate(Sender: TObject); begin AppActivated := true; MainForm.OnAppRestore(Sender); end;
procedure TMainForm.ApplicationEvents1Deactivate(Sender: TObject); begin Main.AppActivated := false; end; |
Es ist einfach so, dass die Variable AppActivated irgendwie bei einer Abfrage trotz fehlendem Anwendungsfokus immer true ist. Die Variable wurde auch schon öfters gesetzt, kann also nicht sein, dass sie einen undefinierten Startwert trägt.
Jetzt halt die Frage, ob ihr noch ne andere Lösung kennt, z.B., ob man mit der Windows API abfragen kann, ob die Anwendung den Fokus hat.
Danke!
Gruß alias5000
netspy - Fr 03.03.06 19:26
Reicht dir nicht die Eigenschaft 'Active' vom Hauptformular?
alias5000 - Fr 03.03.06 20:32
niente
Es geht darum, herauszufinden, ob die Anwendung, den Fokus hat und nicht das Hauptformular.
Das ist genau deswegen so wichtig, da die Hauptfunktionen nicht auf dem Hauptformular sind, allerdings sowohl das Hauptformular, also auch die zusätzliche Form meistens beide angezeigt werden, aber halt nur meistens.
Bisher hat meine PSDK-Recherche nix ergeben, aber ich hab ehrlich gesagt auch keinen wirklichen Schimmer, nach was ich suchen soll...(vllcht find ich ja noch was)
Gruß alias5000
netspy - Fr 03.03.06 22:02
Dann teste doch einfach, ob bei einem der beiden Formulare Active gleich True ist. Ansonsten sollte Application.Active auch reichen.
alias5000 - Fr 03.03.06 22:16
ja das muss ich mal testen :)
aber nicht mehr heute
alias5000 - Sa 25.03.06 18:10
Also Problem ist gelöst, es wurde einfach zur falschen Zeit ein SetFocus bei einer Koponente gesetzt.
Danke für die Hilfe!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!