AGB  ·  Datenschutz  ·  Impressum  







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

Hat Fenster den Eingabefokus?

Ein Thema von VizeTE · begonnen am 19. Jul 2006 · letzter Beitrag vom 19. Jul 2006
Antwort Antwort
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#1

Hat Fenster den Eingabefokus?

  Alt 19. Jul 2006, 12:34
Hallo,

ich möchte wissen ob ein Fenster "vor" einem anderen Fenster des selben Programms ist bzw ob es den Eingabfokus hat.

Das Problem mal am konkreten Beispiel:

Ich habe ein Hauptformular und ein zusätzliches Fenster, welches ich nicht Modal anzeige. Im Hauptfenster läuft ein Timer. Dieser führt bestimmte Routinen aus. Das soll er aber nur machen wenn das Zweitfenster nicht den Eingabefokus hat.

Ich habe es mit der Funktion "Zweitfenster.Focused" probiert. Da kommt aber immer false zurück.

Nun hatte ich die Idee ob man nicht die z-Order der Fenster abfragen kann. Wenn das Zweitfenster den Fokus hat muß es in der z-Order ja über dem Hauptfenster liegen. Leider weiß ich jedoch nicht wie das funktioniert.

Kann mir da jemand auf die Sprünge helfen oder hat wer eine andere Idee?


Danke,
Daniel
  Mit Zitat antworten Zitat
WtF

Registriert seit: 24. Nov 2003
Ort: Nähe München
72 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Hat Fenster den Eingabefokus?

  Alt 19. Jul 2006, 12:43
Wenn du nicht vom Zweitfenster das focus abrufen kannst dann überprüf doch einfach ob das Hauptfenster den Fokus nicht hat. Dann weißt du doch das dass zweitfenster den Fokus hat.
MfG Steffen
Steffen
  Mit Zitat antworten Zitat
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Hat Fenster den Eingabefokus?

  Alt 19. Jul 2006, 13:08
Das funktioniert leider auch nicht. Wenn ich vom Hauptform Focudes abfrage bekomme ich ebenso immer false als Ergebnis. Ich gehe davon aus, daß ich nur von dem aktuellen Eingabefeld "true" zurückbekomme.

Aber selbst wenn würde es auch nicht funktionieren. Der Timer soll auch ausgeführt werden wenn ein anderes Programm den Fokus hat. Nur halt nicht wenn das eigene Fenster vorn ist nicht.
  Mit Zitat antworten Zitat
pinhead

Registriert seit: 17. Mai 2006
10 Beiträge
 
#4

Re: Hat Fenster den Eingabefokus?

  Alt 19. Jul 2006, 13:14
wie schauts aus mit

Delphi-Quellcode:
procedure Tform1.Timer1Timer(Sender: TObject);
begin
  if not form2.showing then
  begin
    //Hier deine Routinen
  end;
end;
  Mit Zitat antworten Zitat
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Hat Fenster den Eingabefokus?

  Alt 19. Jul 2006, 13:30
Das funktioniert auch nicht, leider.

Zitat von Delphi-Hilfe:
Ist die Eigenschaft Visible eines Steuerelements und aller in der Hierarchie übergeordneten Komponenten auf True gesetzt, hat Showing auf jeden Falls den Wert True.
Wenn das Zweitfenster angezeigt aber von dem Hauptfenster überdeckt wird hat es dennoch den Status "Visible=true". Also wird auch "Showing" den Wert true zurückgeben. Es wird ja auch angezeigt, eben nur im Hintergrund.
  Mit Zitat antworten Zitat
pinhead

Registriert seit: 17. Mai 2006
10 Beiträge
 
#6

Re: Hat Fenster den Eingabefokus?

  Alt 19. Jul 2006, 13:35
dann halt

Delphi-Quellcode:
procedure Tform1.Timer1Timer(Sender: TObject);
begin
  if not form2.active then
  begin
    //Hier deine Routinen
  end;
end;
"Mit Active kann festgestellt werden, ob das aktuelle Formular aktiv ist. Das aktive Formular empfängt alle Tastatureingaben. Wenn es eine Titelleiste enthält, wird das Formular mit den in der Systemsteuerung festgelegten Farben angezeigt.

Hat Active den Wert true, besitzt das Formular den Fokus. Ist die Eigenschaft auf false gesetzt, ist das Formular nicht aktiv."
  Mit Zitat antworten Zitat
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: Hat Fenster den Eingabefokus?

  Alt 19. Jul 2006, 13:55
ja, so scheints zu funktionieren.

Danke!
  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 07:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz