AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Ich krieg mein Fenster nicht automatisch aktiv.
Thema durchsuchen
Ansicht
Themen-Optionen

Ich krieg mein Fenster nicht automatisch aktiv.

Ein Thema von t2000 · begonnen am 25. Feb 2021 · letzter Beitrag vom 25. Feb 2021
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#14

AW: Ich krieg mein Fenster nicht automatisch aktiv.

  Alt 25. Feb 2021, 20:14
Du kannst im Delphi mal ein paar Events loggen.
Screen.OnActiveControlChange/OnActiveFormChange
Application.xxx bzw. ApplicationEvents.OnActivate/OnDeactivate/OnRestore/OnModalBegin/OnModalEnd

Dann siehst'e wann/wo dein Fokus hin geht,
bzw. ein Haltepunkt, wenn er am verschwinden ist und dann im Debugger gucken von wo es ausgelöst wurde.

Beim Schließen von Delphi-Fenstern versucht an einigen Stellen die VCL den Fokus zurückzusetzen (lässt nicht Windows entscheiden wohin er geht).
Nimmst sich die VCL dann ein HWND für's MSDN-Library durchsuchenSetFocus, welches aber nicht mehr existiert, dann schmeißt Windows das Programm in den Hintergrund. (das wurde übrigens auch im SetForegroundWindow erwähnt)

Passiert z.B. gern, wenn man ein Fenster anzeigt, während oder kurz bevor ein anderes Fenster geschlossen wird.
Noch schöner, wenn man z.B. im OnClose ein ShowMessage oder ShowModal macht, denn Delphi hängt den Dialog ans aktuell aktive Fenster, aber Dieses verschwindet ja grade und es nimmt dabei auch gleich den Dialog mit ins Nirvana.



Sobald dein Programm einmal den Fokus verloren hat und er auf ein anderes Programm übergehen konnte (wenn Deines nicht das einzige sichtbare Programm ist), dann kann dein Programm sich den Fokus nicht selbstständig zurückholen. (außer zufällig trifft eine der erwähnten Bedingenen von SetForegroundWindow zu)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (25. Feb 2021 um 20:22 Uhr)
  Mit Zitat antworten Zitat
 


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