AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Fenster ungefragt immer vor Hauptfenster - warum?
Thema durchsuchen
Ansicht
Themen-Optionen

Fenster ungefragt immer vor Hauptfenster - warum?

Offene Frage von "p80286"
Ein Thema von ralfiii · begonnen am 18. Jul 2012 · letzter Beitrag vom 19. Jul 2012
 
Patito

Registriert seit: 8. Sep 2006
108 Beiträge
 
#3

AW: Fenster ungefragt immer vor Hauptfenster - warum?

  Alt 19. Jul 2012, 09:31
Alles (alle VCL-Forms) ist "standardmäßig" immer vor der Hauptform ... ist schon seit einer Weile so, also mindestens seit D2009. (in D7 war's noch nicht)
Stellt sich die Frage was "der Hauptform" ist. Ich habe hier eine Anwendung, die beim Start 4 (gleichberechtigte) Fenster anzeigt...

Die Historie von dem Problem war glaube ich folgende:
1) Alle Delphi-Formulare hatten früher als zOrder-Parent das Application.Handle.
2) Windows hat mit mit einem XP-Servicepack das zOrder-Verhalten geändert
Bei zwei Fenstern mit gleichem zOrder-Parent kann sich die Reihenfolge auf dem Bildschirm ändern.
(Ein modaler Dialog kann also auch mal hinter einem anderes Formular wandern)...

-> die VCL, insbesondere Dialogs.pas hat also nicht mehr recht funktioniert.
Seither muss man die Handles der Parent-Formulare selber verwalten.

In D7 verwende ich als Fix für die z-Order Probleme oft folgendes:
Delphi-Quellcode:
procedure TMyForm.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  if (Parent <> nil) or (ParentWindow <> 0) then
    Exit; // must not mess with wndparent if form is embedded

  if Assigned(Owner) and (Owner is TWinControl) then
    Params.WndParent := TWinControl(Owner).Handle
  else if Assigned(Screen.ActiveForm) then
    Params.WndParent := Screen.ActiveForm.Handle;
end;
Der Code sagt dem Formular, dass es sich über den Owner hängen soll, und wenn kein Owner da ist hängt es sich über das gerade aktive Formular (falls eins da ist)).
  Mit Zitat antworten Zitat
 


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 15:12 Uhr.
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