Delphi-PRAXiS
Seite 1 von 2  1 2      

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 MessageDLG rutscht nach hinten! (https://www.delphipraxis.net/104557-messagedlg-rutscht-nach-hinten.html)

Loewentier 6. Dez 2007 10:38


MessageDLG rutscht nach hinten!
 
Habe in letzter Zeit massiv ein Problem bei dem Ihr vielleicht helfen könntet! :pale:
Jeder kennt die Problem das gerade beim Entwickeln manchmal eine MessageBox nach hinter rutscht....
Normalerweise passiert das beim Anwender selten und ein ALT+TAB hilft hier immer weiter!

In einer neuen Charge von PC's die wir aktuell ausliefern scheint es aber so zu sein, dass Messageboxen ausgelöst von modalen Forms regelmässig im Hintergrund landen und auch so leicht nicht wieder nach vorne zu holen sind...
Die neuen "kartonfrischen" PC's sind scheinbar HP-Compaq Intel-V-pro mit Chipsatz-Graphik und Core 2 CPU
(An sich nichts besonderes! Bei > 50 anderen Installationen hatten wir keine Probleme...)

Denke das es an irgendeiner Windows Einstellung oder einem Windows Hot Fix liegen muss :wall:

Hat irgendjemand das gleiche Problem.... oder noch besser :lol: eine Idee an welcher Windows Einstellung etc. es liegen könnte

Ach ja:
Miene Applikation läuft mit Delphi 7! :mrgreen:

RavenIV 6. Dez 2007 10:45

Re: MessageDLG rutscht nach hinten!
 
Dieses Problem wurde hier schon mal gelöst.
Einfach mal die Suche bemühen...

Bernhard Geyer 6. Dez 2007 10:46

Re: MessageDLG rutscht nach hinten!
 
Das Problem liegt an dem Aufsatz Windows XP-Theming welches das Fensterhandling geändert hat und damit zu Probleme mit älteren VCL-Implementierungen führt (Aber nicht nur VCL-Anwendungen fallen damit auf die Schnautze).

Evtl. hilft es einfach mal einen aktuellen Grafikkartentreiber zu installieren.

Loewentier 6. Dez 2007 11:25

Re: MessageDLG rutscht nach hinten!
 
[quote]RavenIV
Stimmt: Bei genauen durchsuchen habe ich z.B. http://www.delphipraxis.net/internal...ght=messagedlg
gefunden was in diese Richtung ging :gruebel:

Glaube aber insgesamt das ich es hier eher mit einem Problem des Graphikkarten Treibers oder einer Windows Einstellung zu tun habe...
Sehr viele Installationen meiner Software laufen problemlos!

Loewentier 13. Dez 2007 14:09

Re: MessageDLG rutscht nach hinten!
 
Hallo Leute!

Bezüglich des Problem mit den MessageBoxen habe ich einige Tests gemacht und folgendes herausgefunden :-D

* Das Problem tritt nur bei Programm Versionen auf die mit Delphi7 kompiliert wurden!
Ältere EXE Versionen die mit Delphi 5 kompiliert wurden sind nicht betroffen :?

* Wir liefern unsren Kunden schon seit langem dieselben kleinen HP-Compaq Rechner mit vorinstallierten Security suits etc.
Die älteren Chargen machten keine Probleme die neuen Kisten hängen!
(Ein Anruf bei HP brachte keine Klärung: Warteschleife... türkisch klingende Callcenter Dame...
Was wollen Sie kaufen :wall: War ja klar!)

Bei den betroffenen Systemen bringt auch die testweise Verwendung von

Delphi-Quellcode:
Application.NormalizeTopMosts; (Neu)
Messagedlg('... !!', mtInformation, [mbOk], 0);
Application.RestoreTopMosts; (Neu)
oder alternativ zu MessageDlg Windows MessageBoxen
Delphi-Quellcode:
Application.MessageBox()
... nichts :wall:

Das Problem lässt sich meist mit ALT + TAB lösen.... Aber das wissen die wenigsten Leute

himitsu 13. Dez 2007 14:25

Re: MessageDLG rutscht nach hinten!
 
MB_SYSTEMMODAL und MB_TOPMOST sind doch schon recht "radikal", aber ein Versuch ist es vielleicht doch wert?

Du könntest es ja erstmal mit MB_SETFOREGROUND versuchen:
Delphi-Quellcode:
Application.MessageBox('Text', 'Captiion', MB_OK or MB_SETFOREGROUND);
Dadurch sollte doch die MessageBox in den Vordergrund wandern?
Zitat:

Zitat von MSDN
The message box becomes the foreground window. Internally, the system calls the SetForegroundWindow function for the message box.

> MSDN-Library durchsuchenMessageBox


PS: MessageDlg ist so'n delphi-eigenes Ding,
also die VCL baut bei jedem neuem Aufruf ein neues Formular zusammen und verwaltet es selber ... und so einfach läßt sich dort nicht reinpfuschen um das Fenster vorzuholen.

gmc616 13. Dez 2007 17:09

Re: MessageDLG rutscht nach hinten!
 
Zitat:

Zitat von Loewentier
* Das Problem tritt nur bei Programm Versionen auf die mit Delphi7 kompiliert wurden!
Ältere EXE Versionen die mit Delphi 5 kompiliert wurden sind nicht betroffen :?

Was ist mit neueren Delphi-Versionen? Gibt es da Erkenntnisse?
Ich hab quasi das gleiche Problem mit Delphi 7, hab es aber bis jetzt immer auf meine eigene Dummheit geschoben.

Loewentier 13. Dez 2007 17:18

Re: MessageDLG rutscht nach hinten!
 
Also erstmal DANKE für die Antwort(en)!

Habe versucht mal den Flag SETFOREGROUND auszuprobieren...
Der ist aber scheinbar im Delphi 7 nicht definiert :oops:

Was scheinbar das Problem löst ist die Verwendung von
Delphi-Quellcode:
Application.MessageBox('Message', 'Information', MB_ICONINFORMATION or MB_OK or MB_SYSTEMMODAL);
Glaube das gab es hier schonmal :stupid:

=> GMC616
Konnte das ganze nicht unter Delphi2006 etc. verifizieren...
Bei meinen Entwicklungsrechnern hab ich ja das Problem sowieso nicht!

PS: Bei mir haben bisher die Delphi eigenen MessageDLG Boxen immer funktioniert...
Egal Ob W2K oder XP oder Vista! Wieso das jetzt aktuell Ärger macht ist mir schleierhaft :zwinker:

himitsu 13. Dez 2007 18:17

Re: MessageDLG rutscht nach hinten!
 
ups MB_SETFOREGROUND ... fehlte im Code etwas :oops:
und definiert ist es in der Unit Windows.

unter MSDN-Library durchsuchenMessageBox kannst du nochmal genau nachlesen was welcher Wert macht.

MB_SETFOREGROUND bringt nur das Fenster, kurz nachdem es erstellt wurde, in den Vordergrund,
wärend MB_SYSTEMMODAL dieses etwas anders (Systemweit) löst ... um MB_SETFOREGROUND nur dein Programm betrifft.

Loewentier 14. Dez 2007 16:32

Re: MessageDLG rutscht nach hinten!
 
Habe heute die Wirkung der verschiedenen Flags nochmal ausprobiert... :|
Der FLAG: MB_SETTFOREGROUND bringt bei den betroffen Systemen keine Änderung! (Die Message ist weiter verdeckt!)
Nur mit MB_SYSTEMMODAL kommt die Message nach vorne, liegt aber dann wie in der MSDN beschrieben, (modal) vor allem anderen was sonst noch so auf dem PC läuft!
Ich frage mich nach wie vor was sich bei den betroffenen PC'S im Windows geändert hat...
Wenn es die Auswirkung irgendeines neuen MS-Hotfixes ist, dann gibt das sicherlich noch eine Menge Ärger :gruebel:

DANKE nochmal für eure Antworten...


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz