Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Modale Fenster verschwinden (https://www.delphipraxis.net/181059-modale-fenster-verschwinden.html)

OlliWW 11. Jul 2014 10:32

Modale Fenster verschwinden
 
Hallo Zusammen,

Wir haben in unserer Software immer wieder ein Phänomen das wir uns noch nicht so wirklich erklären können:

Es kommt immer wieder dazu, dass modale Fenster hinter einem anderen Fenster verschwinden. Dann kann man in dem Programm soviel klicken wie man will, es passiert nichts, weil das modale Fenster ja den Focus hat, man es aber nicht sieht. Oft hat man Glück und man kriegt es mit "ALT-Tab" wieder in den Vordergrund, das ist aber keine zufriedenstellende Lösung auf Dauer.

Das Hauptprogramm ist ein MDI Programm.

Kennt jemand dieses Verhaltung von Delphi, oder hat jemand eine Idee wie man dem auf die Schliche kommen könnte? Das Problem ist, dass es nicht immer auf tritt, eher zufällig.

Bernhard Geyer 11. Jul 2014 10:38

AW: Modale Fenster verschwinden
 
Welche Delphi-Version?
Ältere Versionen haben Problem mit dem geänderten Z-Order-Fensterhandling von neueren Windows-Versionen.

OlliWW 11. Jul 2014 10:39

AW: Modale Fenster verschwinden
 
XE5, das Problem bestand auch schon unter Delphi 2007.

Ich habe mir auch schon den Changelog von XE6 durchgesehen, dort konnte ich aber im Zusammenhang mit VCL nichts mit modalen Fenstern finden.

Der schöne Günther 11. Jul 2014 10:46

AW: Modale Fenster verschwinden
 
Habe ich auch oft mit "älteren" Versionen gehört, hier bei XE5 passiert das auch ab und an. Immer wieder witzig :roteyes:

Reproduzieren kann ich es nicht.

Jasocul 11. Jul 2014 10:50

AW: Modale Fenster verschwinden
 
Ich hatte beim Wechsel von XP auf Windows7 auch mit diesem Problem zu kämpfen.
Geholfen hat mir diese Routine von Schweizern: http://www.swissdelphicenter.ch/de/showcode.php?id=261

DeddyH 11. Jul 2014 10:55

AW: Modale Fenster verschwinden
 
Das Problem kenne ich, bei uns hat das hier geholfen: http://www.detlef-heibing.de/program...und-holen.html

Der schöne Günther 11. Jul 2014 11:19

AW: Modale Fenster verschwinden
 
Warum im onIdle? Wäre onActivate nicht eher geeignet?

Und: Ich sehe grade: TApplication.OnModalBegin und .onModalEnd. Noch nie vorher drüber gestoplert. Was man damit wohl anstellen kann?

himitsu 11. Jul 2014 11:28

AW: Modale Fenster verschwinden
 
MDI ist etwas, daß wohl nicht mehr so gut gewartet wird und wo es gern mal Problemchen gibt.
http://www.delphipraxis.net/180093-d...sprobleme.html

Wenn du es schaffst die Z-Order auszulesen, dann kannst du im Hintergrund einen Timer laufen lassen, welcher für das aktive Fenster schaut wo es ist und es dann nach vorne schiebt, wenn es nicht mehr vorne liegt.
Habt ihr noch StayOnTop-Fenster im Programm? Wenn ja, dann mußt du da aufpassen. (wir haben die alle rausgeworfen/umgebaut, da es damit noch mehr Probleme gab)

Ansonsten ein globaler Hotkey im Programm, der das aktive Fenster nach vorne holt, bzw. im Application.OnActivate (TApplicationEvents), wenn die Anwendung den Fokus bekommt.
> Screen.ActiveCustomForm


Ach ja, aufpassen muß man mit einigen Windowsdialogen, wie z.B. der MessageBox, welche von der VCL nicht grade sonderlich beachtet/erkannt werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:36 Uhr.

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