Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by himitsu,
25. Feb 2021
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...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by himitsu,
25. Feb 2021
Dein Programm ist/war ja im Hintergrund (hatte keinen Eingabefokus) und daher verweigert Windows ihm sich selbstständig den Vordergrund zu setzen.
Wenn man ein Programm neu startet, dann war der Andere (Desktop/Explorer/Startmenü/...) vorher altiv und somit kann ein neues Programm auch sofort aktiv werden. (ist eine der Bedingungen, wie sie im SetForegroundWindow aufgzählt werden)
Ich...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by himitsu,
25. Feb 2021
Windows lässt standardmäßig nicht mehr zu, dass sich irgendein Hintergrund-Programm selbst in den Vordergrund holt (außer auf Interaktion mit dem Benutzer, wenn er klickt)
* das aktive Programm kann deinem Programm das Recht geben sowas machen zu dürfen
* ...
siehe Remarks: SetForegroundWindow
Such einfach mal Forum ... da gibt es schon viele Threads zu, teilweise auch mit "Lösungen"