AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Verwendung von TTitleBarPanel mit ModalPopupMode := pmAuto
Thema durchsuchen
Ansicht
Themen-Optionen

Verwendung von TTitleBarPanel mit ModalPopupMode := pmAuto

Offene Frage von "VCLVirtuoso"
Ein Thema von VCLVirtuoso · begonnen am 20. Mär 2024 · letzter Beitrag vom 5. Apr 2024
 
VCLVirtuoso

Registriert seit: 12. Mär 2024
3 Beiträge
 
Delphi 12 Athens
 
#5

AW: Verwendung von TTitleBarPanel mit ModalPopupMode := pmAuto

  Alt 5. Apr 2024, 08:48
Du kannst für jedes Form individuell den PopupMode ändern oder z. B. explizit den PopupParent auf das aktive Form setzen, bevor Du ShowModal aufrufst, aber selbst wenn das funktioniert erfordert es natürlich auch eine entsprechende Änderung an vielen Stellen der existierenden Anwendung.

Ansonsten bleibt nur, die verantwortliche Stelle im VCL-Kode zu suchen und zu fixen. Tritt das Problem auch in Delphi 11.x auf? Falls nicht würde ich die Änderungen am VCL-Kode für "moderneres" Erscheinungsbild von MDI-Anwendungen im Verdacht haben; da wurde einiges verschlimmbessert, was auch nicht-MDI Anwendungen torpedieren kann.
Tatsächlich funktioniert es, sobald man
Code:
pmAuto
nicht nur global setzt sondern nochmal für jedes Fenster einzeln. Das ist etwas Aufwand, aber deutlich besser als der vorherige Hack. In der Zwischenzeit sind durch das globale
Code:
pmAuto
noch weitere Fehler aufgetreten, weil die Window Handles jedes Mal neu erzeugt werden (zB leere ComboBoxes, wenn die nicht bei jedem Form-Aufruf neu beschrieben werden).
In der Dokumentation zu PopupMode steht auch etwas dazu, das ich überlesen habe:
Zitat:
Die Eigenschaft PopupMode wird beim Aufruf der Methode ShowModal automatisch auf pmAuto gesetzt. Dies verursacht aber eine Neuerstellung des Fenster-Handle, was in der Regel nicht wünschenswert ist. Um die Neuerstellung von Fenster-Handles zu vermeiden, muss die Eigenschaft PopupMode vor dem Aufruf der Methode ShowModal explizit auf pmAuto gesetzt werden (z.B. zur Entwurfszeit).
Damit ist das Thema nun gelöst. Danke für die Hilfe!
  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 01:05 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