AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein messagebox hinter modularen Fenstern
Thema durchsuchen
Ansicht
Themen-Optionen

messagebox hinter modularen Fenstern

Ein Thema von stalkingwolf · begonnen am 11. Mär 2014 · letzter Beitrag vom 12. Mär 2014
Antwort Antwort
Seite 1 von 2  1 2      
stalkingwolf

Registriert seit: 6. Mai 2011
543 Beiträge
 
#1

messagebox hinter modularen Fenstern

  Alt 11. Mär 2014, 08:56
Guten Morgen zusammen.

Es kommt immer wieder einmal vor, das messagebox bei modularen Fenstern hinter diesem Fenster erscheinen.
Das Problem daran ist, dass der normale Benutzer damit ziemlich überfordert ist und immer der Meinung ist das Programm würde "hängen", da im aktiven Fenster keinerlei Eingaben mehr Möglich sind.
Da oft Fenster größer als die messagebox ist, sieht der Benutzer diesen Dialog auch nicht.
Mit ein wenig ALT+TAB erscheint die messagebox zwar, aber wie oben erwähnt für den Normalen Benutzer oft nicht nachvollziehbar.
Es kann sogar passieren, dass das vorherige Fenster Eingaben erlaubt, obwohl die messagebox modal sein sollte.

Das Phänomen haben wir seit Jahrne und in der Häufigkeit auch nur bei Delphi Applikationen gesehen.
Kennt ihr das Problem, oder habt sogar eine Lösung für das Problem?
Wir hatten teilweise sogar das Problem das die Druckerfenster von Windows selber im Hintergrund geöffnet wurden.
Es tritt auch auf jeder Windows Version auf. XP, 7, 2008 RC2 Server, 2013 Server ( Win 8 noch nicht intensiv getestet ).
Ein Schema habe ich bisher nicht erkannt.

LG
Sven
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: messagebox hinter modularen Fenstern

  Alt 11. Mär 2014, 08:59
Kennt ihr das Problem, oder habt sogar eine Lösung für das Problem?
Ja, ich habe das Problem auch immer wieder aber leider keine Lösung dafür.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

AW: messagebox hinter modularen Fenstern

  Alt 11. Mär 2014, 09:15
Vielleicht hilft es: http://www.detlef-heibing.de/program...und-holen.html
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: messagebox hinter modularen Fenstern

  Alt 11. Mär 2014, 09:23
Dann verwende eben keine direkte WinAPI-MSDN-Library durchsuchenMessageBox, sondern die Delphi-VCL-Varianten ala Delphi-Referenz durchsuchenShowMessage und Co.

Oder
  Application.MessageBox('Hallo', 'Titel');

Oder du versucht es z.B. so
Delphi-Quellcode:
  Application.NormalizeAllTopMosts;
  try
    MessageBox(Application.ActiveFormHandle, PChar('Hallo'), PChar('Titel'), MB_OK);
  finally
    Application.RestoreTopMosts
  end;
Oder man spielt mal mit Delphi-Referenz durchsuchenApplication.OnModalBegin und Delphi-Referenz durchsuchenApplication.OnModalEnd rum.
$2B or not $2B

Geändert von himitsu (11. Mär 2014 um 09:25 Uhr)
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
543 Beiträge
 
#5

AW: messagebox hinter modularen Fenstern

  Alt 11. Mär 2014, 09:27
Das ist egal. Das passiert bei messagedlg, messagebox.
Showmessage fällt wohl raus, da man keine Abfragen damit abbilden kann.

Und ich will nicht spielen, wie haben eine produktives System. Ich will mir nicht immer einen Kopf machen müssen, wenn ich eine Frage dem Anwender stellen will.

Ich schau mir einmal das oben genannte Beispiel an.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: messagebox hinter modularen Fenstern

  Alt 11. Mär 2014, 09:28
Dann verwende eben keine direkte WinAPI-MSDN-Library durchsuchenMessageBox, sondern die Delphi-VCL-Varianten ala Delphi-Referenz durchsuchenShowMessage und Co.
Bei mir passiert es mit VCL.Dialogs.MessageDlg
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: messagebox hinter modularen Fenstern

  Alt 11. Mär 2014, 09:30
Man könnte auch mal verraten um welche Delphi-Version es geht.

Denn irgendwo zwischen Delphi 7 und XE wurde die Behandlung der Fensterreihenvolge verändert.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: messagebox hinter modularen Fenstern

  Alt 11. Mär 2014, 09:36
Bei einem Delphi2007-Programm habe ich es definitiv. Bei meinen XE-Programmen fällt mir gerade kein Fall ein, evtl. wurde das da tatsächlich behoben.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

AW: messagebox hinter modularen Fenstern

  Alt 11. Mär 2014, 10:23
Bei den eigenen Kapselungen der VCL-Dialoge, ist bei uns ein NormalizeTopMost, bzw. NormalizeAllTopMosts drumrum. (ich weiß jetzt aber nicht ob das erst mit der Umstellunge auf XE rein kam, oder schon bei D7 so war)

Bei den Dialogen des Eurekalog, welche fast immer hinter anderen Fenstern fest hingen, wurde das über unter Anderem über OnModalBegin/OnModalEnd gelöst.
Was aber später dann Folgendes durch ersetzt wurde.
Delphi-Quellcode:
procedure THauptForm.EurekaLog1ExceptionActionNotify(EurekaExceptionRecord: TEurekaExceptionRecord; EurekaAction: TEurekaActionType; var Execute: Boolean);
begin
  if not (edoShowInTopMostMode in CurrentEurekaLogOptions.ExceptionDialogOptions) then
    CurrentEurekaLogOptions.ExceptionDialogOptions := CurrentEurekaLogOptions.ExceptionDialogOptions + [edoShowInTopMostMode];

 if EurekaAction = atShowingExceptionInfo then
   Application.NormalizeTopMosts;
 if EurekaAction = atShowedExceptionInfo then
   Application.RestoreTopMosts;
end;
$2B or not $2B
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#10

AW: messagebox hinter modularen Fenstern

  Alt 11. Mär 2014, 14:10
Ich habe dieses Problem bei Delphi 2007 bei eingeschaltetem Application.MainFormOnTaskbar nicht mehr beobachtet. Allerdings habe ich die Forms.pas modifiziert um diverse bekannte Bugs (aus der QC) zu beseitigen. Möglicherweise habe ich dabei auch dieses Problem beseitigt (ist jetzt auch schon etwas her). Wer diese modifizierte Version haben möchte, kann sich ja per pm bei mir melden.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 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