Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Frage zu getfocus und ähnlichem (https://www.delphipraxis.net/102221-frage-zu-getfocus-und-aehnlichem.html)

WS1976 25. Okt 2007 08:04


Frage zu getfocus und ähnlichem
 
Hallo,
ich habe folgendes Verständnisproblem:
t,s,a,b sind alle Typ HWND
t:=getfocus;
s:=GetForegroundWindow;
a:=application.Handle
b:=form1.Handle

Ich lasse ein selbst erstelltes Programm laufen, das alle 1000ms die oben genannten Informationen abruft!

s:=GetForegroundWindow; und b:=form1.Handle sind identisch (solange mein Prog(Fenster) den Fokus hat). Dies hatte ich auch so erwartet.

Zitat:

In der SDK steht:
The GetFocus function retrieves the handle of the window that has the keyboard focus, if the window is associated with the calling thread's message queue.
danach müsste getfocus eigentlich ebenfalls das handle des Fensters zurückgeben!
Versteh ich was falsch?

Hab ich auch probiert:
t:=getfocus; und a:=application.Handle sind unterschiedlich.

Grüsse
Rainer

peschai 25. Okt 2007 08:16

Re: Frage zu getfocus und ähnlichem
 
Ich glaube, wenn du in einem editfeld bist, so gibt dir Getfocus das Fensterhandle des Editfields zurück ... (z.b. EditHandle<>FormHandle)
Weiteres Beipiel: Einer der Unterscheide zwischen TPanel und TGroupbox ist z.b. daß TPanel ein echtes WindowsFenster ist ... :)

Luckie 25. Okt 2007 08:26

Re: Frage zu getfocus und ähnlichem
 
Application.Handle ist das Handle des unsichtbaren VCL-Fensters, welches für den Taskbar-Eintrag zuständig ist. Da es unsichtbar ist, wird es nie den Fokus bekommen können, um Eingaben entgegen zu nehmen.

WS1976 25. Okt 2007 09:37

Re: Frage zu getfocus und ähnlichem
 
Hallo Luckie,

danke für die Antwort. Hat (bei mir) eine Wissenslücke geschlossen!

Grüsse
Rainer

SirThornberry 25. Okt 2007 10:00

Re: Frage zu getfocus und ähnlichem
 
ganz unsichtbar ist das Application-Fenster dann doch nicht. Denn wenn du es mit ShowWindow unsichtbar machst wirst du sehen das der Taskbareintrag mit verschwindet. Ansonsten stimmt die Aussage von Luckie


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 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