Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   messagebox hinter modularen Fenstern (https://www.delphipraxis.net/179495-messagebox-hinter-modularen-fenstern.html)

stalkingwolf 12. Mär 2014 07:56

AW: messagebox hinter modularen Fenstern
 
Wir werden das nun im Auge behalten. Wirklich reproduziert bekommen wir das allerdings nicht.

Der Hinweis von MainFormOnTaskbar ist interessant im Bezug auf Wine. Weil in Wine haben wir immer 2 Fenster pro Applikation. Beim suchen im Netz würde dies das Verhalten auch erklären.

Wir nutzen (noch) Delphi 6. Wir sind unsere Software auf XE4 am umstellen, aber hier und da gibt es noch ein paar kleine Probleme die gelöst werden müssen.

CCRDude 12. Mär 2014 08:02

AW: messagebox hinter modularen Fenstern
 
Das ist bekannt als "ghosting", der mMn praktischste Workaround ist, am Anfang des Codes (dpr, oder initialization einer Unit) MSDN-Library durchsuchenDisableProcessWindowsGhosting aufzurufen:


Delphi-Quellcode:
procedure DisableProcessWindowsGhosting;
var DisableProcessWindowsGhostingImp: procedure;
begin
   {$IFNDEF FPC}
   DisableProcessWindowsGhostingImp :=
      GetProcAddress(GetModuleHandle('user32.dll'),
                     'DisableProcessWindowsGhosting');
   if (@DisableProcessWindowsGhostingImp <> nil) then begin
      DisableProcessWindowsGhostingImp;
   end;
   {$ENDIF FPC}
end;

stalkingwolf 12. Mär 2014 08:23

AW: messagebox hinter modularen Fenstern
 
Sich jemand schon einmal das https://groups.google.com/forum/#!to...ng/KiTVAocyDcA
angeschaut.
Normalisierung der Delphi Anwendung?

Das beschrieben Problem was durch ghosting Auftritt kenne ich. Fenster die eigentlich "zu" sein sollten, sind immer noch sichtbar und man bekommt sie auch nicht mehr geschlossen.
Drückt der Anwender auf irgendwelche Buttons, funktioniert das Programm nicht einwandfrei.
Passiert vor allem dann, wenn beim close vom Fenster irgendwas zu lange dauert.

CCRDude 12. Mär 2014 09:10

AW: messagebox hinter modularen Fenstern
 
DisableProcessWindowsGhosting hat bei mir definitiv gegen die Dialoge im Hintergrund geholfen, was Du als beschrieben beschreibst kenne ich nun wieder nicht :-D

Diese "Normalisierung" dürfte je nach OS- und Delphi-Version deutlich komplexer sein, als dort beschrieben. Einiges ähnliches habe ich auch schon ausprobiert, dann aber OS-spezifisch unterschiedlich behandeln müssen.

himitsu 12. Mär 2014 09:48

AW: messagebox hinter modularen Fenstern
 
Zitat:

Zitat von CCRDude (Beitrag 1251646)
DisableProcessWindowsGhosting hat bei mir definitiv gegen die Dialoge im Hintergrund geholfen, was Du als beschrieben beschreibst kenne ich nun wieder nicht :-D

Das bedeutet dann aber auch, daß deine Fenster, bzw. der GUI-Thread, öfter mal hängen, denn ansonsten sollten diese Geister keine Auswirkung haben, da sie nicht erscheinen.


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

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