Discussion:
Modales Fenster im Hintergrund
(zu alt für eine Antwort)
Jürgen Hochwald
2003-11-21 19:09:37 UTC
Permalink
Hi

Wir haben folgendes Problem:
In der Anwendung wird ein Fenster mit Showmodal oder ein Hinweis mit
Messagedlg angezeigt. Bei manchen Kunden passiert es ganz massiv, daß diese
Fenster nicht in den Vordergrund kommen (liegen hinter dem
Anwendungsfenster). An meinem Entwiklungsrechner (W2k Sp3, Delphi 5)
passiert das überhaupt nicht, bei einigen Kollegen tritt das ganz selten
auf. Es erhärtet sich dabei der Verdacht, daß nur W2k und XP-Rechner
betroffen sind. Die Anwendung ist sehr umfangreich (400 Formulare 350000
Zeilen) und verwendet diverse zugekaufte Komponenten. Es ist allerdigs
nichts in der Richtung programmiert, um eine eigene Fensterverwalrung zu
realisieren oder das Fenstermanagment von Windoof irgendwie zu
beeinflussen.

Gibt es dafür eine Patch (Windows, Delphi) oder was kann man dagegen tun ?


Jürgen
www.cfjh.de
Ralf Mimoun
2003-11-21 19:53:22 UTC
Permalink
Moin!
Post by Jürgen Hochwald
Hi
In der Anwendung wird ein Fenster mit Showmodal oder ein Hinweis mit
Messagedlg angezeigt. Bei manchen Kunden passiert es ganz massiv, daß
diese Fenster nicht in den Vordergrund kommen (liegen hinter dem
Anwendungsfenster). An meinem Entwiklungsrechner (W2k Sp3, Delphi 5)
passiert das überhaupt nicht, bei einigen Kollegen tritt das ganz
selten auf. Es erhärtet sich dabei der Verdacht, daß nur W2k und
XP-Rechner betroffen sind.
Exakt. Wenn eine Anwendung lang genug im Hintergrund ist, wird ein modales
Fenster nicht automatisch nach vorn geholt. Statt dessen blinkt der Eintrag
in der Taqskleiste unten.
Post by Jürgen Hochwald
Gibt es dafür eine Patch (Windows, Delphi) oder was kann man dagegen tun ?
Jep, such mal bei Google, es gab mal nen entsprechenden Codeschnipsel. Ein,
zwei Zeilen, nix Weltbewegendes.

Bye, Ralf
Jürgen Hochwald
2003-11-21 20:34:34 UTC
Permalink
Der Kunde arbeitet gerade mit der Anwendung. Nun klickt er zB. auf den
Schalter 'drucken'. Daraufhin erscheint ein modales Fenster mit
Druckoptionen. Dieses Fenster erscheint bei bestimmten Konstellationen
*hinter* dem eigentlichen Anwendungsfenster. Das Anwendungsfenster kann
aber nicht mehr weggeschoben werden, da ja jetzt das modale Druckfenster
den Eingabefukus hat. Dieses ist aber komplett hinter dem eigentlichen
Anwendungsfenster und damit unerreichbar. Manchmal gelingt es durch
'durchtabben' der Taskleiste, das modale Fenster nach vorne zu bekommen.

J�rgen
www.cfjh.de
Stefan Huber
2003-11-21 21:51:30 UTC
Permalink
Post by Jürgen Hochwald
In der Anwendung wird ein Fenster mit Showmodal oder ein Hinweis mit
Messagedlg angezeigt.
Ich habs inzwischen aufgegeben, ShowMessage oder MessageDlg zu verwenden.
Ich empfehle dir den Windows-API-Call MessageBox. (MessageDlg mag das sogar
eh können).

MessageBox(Handle, PChar('text'), PChar('Titel'), mb_ok or mb_applmodal);

Dieses MB_APPLMODAL ist im Zusammenhang mit dem Handle wichtig: Das Fenster
wird modal zum angegebenen Handle. Nimm dein Form und das Fenster kommt
garantiert *vor* dieses Form.

Stefan
--
Der Horizont vieler Menschen ist ein Kreis mit Radius Null.
Und das nennen sie dann ihren Standpunkt.
Gerd Kayser
2003-11-22 01:46:50 UTC
Permalink
Post by Jürgen Hochwald
In der Anwendung wird ein Fenster mit Showmodal oder ein Hinweis mit
Messagedlg angezeigt. Bei manchen Kunden passiert es ganz massiv,
daß diese Fenster nicht in den Vordergrund kommen (liegen hinter dem
Anwendungsfenster).
Hallo Jürgen,

bei Verwendung von NormalizeTopMosts bzw. NormalizeAllTopMosts
und RestoreTopMosts sollte das Problem nicht auftreten.

Siehe Hilfe zu TApplication.

MfG
Gerd
Joachim Mohr
2003-11-22 10:45:19 UTC
Permalink
Post by Jürgen Hochwald
Hi
In der Anwendung wird ein Fenster mit Showmodal oder ein Hinweis mit
Messagedlg angezeigt. Bei manchen Kunden passiert es ganz massiv, daß diese
Fenster nicht in den Vordergrund kommen (liegen hinter dem
Anwendungsfenster). An meinem Entwiklungsrechner (W2k Sp3, Delphi 5)
passiert das überhaupt nicht, bei einigen Kollegen tritt das ganz selten
auf. Es erhärtet sich dabei der Verdacht, daß nur W2k und XP-Rechner
betroffen sind. Die Anwendung ist sehr umfangreich (400 Formulare 350000
Zeilen) und verwendet diverse zugekaufte Komponenten. Es ist allerdigs
nichts in der Richtung programmiert, um eine eigene Fensterverwalrung zu
realisieren oder das Fenstermanagment von Windoof irgendwie zu
beeinflussen.
Ich habe dieses Verhalten in folgenden Situationen erlebt (Windows ME).

1. Bei eigenen Programmen verdeckt ein Fenster mit "stayontop" das
modale Fendster.

2. Bei meinem T-Onlineprogramm: Wenn der Online-Kontakt
unterbrochen wird erscheint ein modales Fenster mit der
Abfrage "Neu verbinden". Dieses Fenster ist hinter dem
T-Online-Hauptfenster versteckt. Also hängt T-Online.
Jedoch wenn ich alle anderen Fenster von Hand minimmiere
sehe ich wieder dieses modale Fenster und kann alle T-Online-Menüs
aufrufen.

Ein brutales Vorgehen wäre folgendes: Alle geöffneten Fenster
minimieren. Dann kann man das modale Fenster mit der Taskleiste
(vielleicht?) hervorholen.

MFG Joachim
--
Joachim Mohr (Spam an "***@privacy.net")
Legionsweg 5 D-72108 Rottenburg am Neckar
e-mail an mich persönlich über homepage-kontakt:
http://delphi.zsg-rottenburg.de
Tel.:07472-7594
"Wenn die Menschen nicht manchmal Dummheiten machten,
geschähe überhaupt nichts Gescheites." L. Wittgenstein
Loading...