Autor Beitrag
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Fr 18.03.05 21:13 
Hallo,

ich habe ein Problem mit meiner Anwendung.
In dieser Anwendung kann man Dateien aus dem Internet herunterladen.
Sobald die Übertragung erfolgreich war, wird ein MessageDlg angezeigt. Und das ist das problem.

Wenn der Anwender das Herunterladen anstößt, in eine andere Anwendung wechselt und dann über den Button auf der Taskleiste zu meiner Anwendung zurückkehrt und der MessageDialog schon angezeigt wird, ist dieser aber hinter dem Formular, der die meldung anzeigt. Also kann der Anwender nicht mehr auf den dialog klicken und bekommt so das Gefühl, als sei die Anwendung eingefroren.

Wie kann ich es also verhindern, daß der MessageDialog hinter dem eigentlich aktuellen Fenster angezeigt wird, wenn man in die Anwendung zurückkehrt.

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
Lesco
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 42



BeitragVerfasst: Sa 19.03.05 12:44 
is dialog modal`?
CenBells Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: So 20.03.05 02:31 
@Lesco: Weiß meinst du damit?

Ich verwende die Funktion MessageDlg aus der Unit Dialogs und das Formular in der Unit, in der ich den MessageDlg aufrufe wird Modal angezeigt.

Gruß

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
csa
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

Win XP
Delphi 2005 Prof.
BeitragVerfasst: Mo 21.03.05 12:59 
Hallo,

das Problem entsteht möglicherweise, wenn MessageDlg bei minimierter Anwendung aufgerufen wird. Vielleicht hilft es, den Aufruf von MessageDlg bei minimierter Anwendung (IsIconic(Application.Handle)) bis zu einem TApplicationEvents.OnRestore-Event zu verzögern.

Ansonsten kann man den Dialog in Screen.ActiveForm finden (Test: Screen.ActiveForm.ClassName = 'TMessageForm'), und bspw. in einem TApplicationEvents.OnRestore-Event nach vorne bringen.

Gruß, Christoph