Rufen Sie Windows.GetForegroundWindow()
auf und übergeben Sie dann HWND
an die Funktion Controls.FindControl()
. Es wird ein non-nil TWinControl
-Zeiger zurückgegeben, wenn HWND
zu Ihrem Prozess gehört. Zum Beispiel:
Wenn Ihre Anwendung aus einem einzigen Formular besteht,
%Vor%wird ausreichen. Der obige Ausdruck ist genau dann wahr, wenn das Formular das Vordergrundfenster ist, dh wenn der Tastaturfokus zu einem Steuerelement in diesem Formular (oder zum Formular selbst) gehört.
Wenn Ihre Anwendung aus mehreren Formularen besteht, durchlaufen Sie sie einfach und überprüfen Sie, ob sie mit GetForegroundWindow
übereinstimmen.
Eine leichte Variation der Remys-Antwort ist:
%Vor%kompiliert ok für mich, aber ich fand es unzuverlässig während des Debuggens, der stringgrid.setfocus wird aufgerufen, auch wenn das Fenster nicht fokussiert ist, was einen Fehler verursacht.
Tags und Links delphi winapi vcl notification-area