Hmm..
Also, wenn dein Popup eine TForm-Ableitung ist, das Form mit 'Show' angezeigt wird und Du möchtest, dass dieses Formular 'geschlossen' wird Du neben dieses Formular in deine Anwendung clickst,
dann benutze doch das OnDeactivate-Event:
Delphi-Quellcode:
procedure TForm2.FormDeactivate(Sender: TObject);
begin
Close;
end;
Das Gegenstück ist OnActivate
Nur ein Control mit einem Eingabefeld hat ein OnEnter und ein OnExit, da man 'hinein' und wieder 'hinaus' gehen kann.
Ein Formular selber hat kein Eingafeld, somit auch kein OnEnter/OnExit.
Das gleiche gilt für Scrollboxen, Panels, Buttons..
Wenn Du noch willst, dass die Popup-Form auch geschlossen wird, wenn deine Applikation den Focus verliert, dann musst du mit Application.HookMainWindow arbeiten.
Delphi-Quellcode:
function TForm1.AppHookFunc(var Message: TMessage): Boolean;
begin
Result := False;
if Message.Msg = CM_ACTIVATE then begin
// Hier alles was beim Aktivieren deiner Applikation
end;
if Message.Msg = CM_DEACTIVATE then begin
// Hier alles was beim DeAktivieren deiner Applikation
// Wie z.B. PopUp.Close;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.HookMainWindow(AppHookFunc);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Application.UnHookMainWindow(AppHookFunc);
end;