Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi OnFocusLost-Event? (https://www.delphipraxis.net/129018-onfocuslost-event.html)

himitsu 13. Feb 2009 08:40

Re: OnFocusLost-Event?
 
Genau, wenn er as Fenster sieht, weiß er Bescheid und wenn er es Wegklickt, dann sollte er (kannst es ja gern nochmal in dem Dialog erwähnen), daß es noch 'ne Weile Dauern kann, bis dein Programm reagiert.

wenn ich z.B. viele Dateien omprimiere, dann starr ich doch auch nicht ständig auf das Fortschrittsfenster ... ich minimiere es und mach solange was anderes ... irgendwann isses schon Fertig ... und da ich solange was anderes machen kann, würde es mir tierischst auf den Keks gehn, wenn ständig soein Fenster im Vordergrund wäre und mir womöglich noch die Sicht versperrt.

sx2008 13. Feb 2009 09:39

Re: OnFocusLost-Event?
 
BringToFront() ist beschränkt auf die Applikation.
Es wird nur sichergestellt, dass das Fenster ganz oben auf der Applikation steht.
Das bedeutet nicht, dass es grundsätzlich immer das oberste Fenster auf dem Desktop ist.
Jede andere Anwendung kann den Fokus erhalten und in den Vordergrund geholt werden.

Grund für BringToFront() ist folgende Erfahrung:
Wenn eine Delphi Anwendung z.B. eine Fehlermeldung (modal) anzeigt, kann es passieren dass durch einen Mausklick dieses Fenster hinter dem Hauptformular verschwindet.
Jeder Klick auf die Anwendung wird nur noch mit einem "Pling" quitiert; die Anwendung ist nicht mehr bedienbar.
Man muss mit Alt-Tab und Shift-Alt-Tab wieder auf die Anwendung umschalten, damit das modale Fenster in den Vordergrund geholt wird.
Bei einem nicht-modalen Fenster gilt Ähnliches:
der Benutzer startet einen Vorgang, ein nicht-modales Fenster mit der Rückmeldung was gerade passiert wird angezeigt.
Klickt der Benutzer jetzt auf das dahinterliegende Formular verschwindet das Rückmelde-Formular.
Das Programm reagiert jetzt scheinbar nicht mehr und der Benutzer weiss nicht was im Moment passiert.
Deshalb wird das Rückmelde-Formular regelmässig in den Vordergrund geholt.
Wenn man das Rückmelde-Formular nicht nach vorne holt, kommt der Benutzer womöglich auf die Idee, dass das Programm hängt und schiesst es im Taskmanager ab.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 Uhr.
Seite 2 von 2     12   

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