AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Runtime Error 216 beim Schließen des Programs nur wenn Save/Opendialog ausgeführt
Thema durchsuchen
Ansicht
Themen-Optionen

Runtime Error 216 beim Schließen des Programs nur wenn Save/Opendialog ausgeführt

Ein Thema von AuronTLG · begonnen am 16. Dez 2020 · letzter Beitrag vom 15. Mär 2021
Antwort Antwort
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
325 Beiträge
 
Delphi 12 Athens
 
#1

AW: Runtime Error 216 beim Schließen des Programs nur wenn Save/Opendialog ausgeführt

  Alt 16. Dez 2020, 14:17
Okay, so wie es aussieht ist mein Styling dafür verantwortlich...
Sobald das Programm mit TStyleManager.TrySetStyle/SetStyle gestylt wurde, rufen die TOpenDialogs den alten auf. Ohne Stil rufen sie den neuen auf.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Runtime Error 216 beim Schließen des Programs nur wenn Save/Opendialog ausgeführt

  Alt 16. Dez 2020, 14:54
Delphi-Quellcode:
function TOpenDialog.DoExecute(Func: Pointer; ParentWnd: HWND): Bool;
...
begin
  if (Win32MajorVersion >= 6) and UseLatestCommonDialogs and
     not (TStyleManager.IsCustomStyleActive and (shDialogs in TStyleManager.SystemHooks)) and
     IsNewCommonCtrl and (Template = nil) and IsAppThemed and
     not (Assigned(FOnIncludeItem) or Assigned(FOnClose) or Assigned(FOnShow)) then
  begin

    // über TFileDialogWrapper den TFileOpenDialog verwenden

    Exit;
  end;
  
  // das die alte API benutzen (eventuell noch durch NewStyleControls das OFN_EXPLORER deaktivert)

end;
Eventuell hilft shDialogs in TStyleManager.SystemHooks ??
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (16. Dez 2020 um 14:59 Uhr)
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
325 Beiträge
 
Delphi 12 Athens
 
#3

AW: Runtime Error 216 beim Schließen des Programs nur wenn Save/Opendialog ausgeführt

  Alt 16. Dez 2020, 15:16
ShDialogs habe ich probiert und das hilft in der Tat, hat aber leider die Nebenwirkung, dass dann sämtliche Dialogs ungestyled sind, so z.B. auch ShowMessages etc.
Die zwei Möglichkeiten, die mir jetzt offen stehen sind, so wie es scheint, entweder das Verwenden von VCL.Styles.Utils oder manuelles Ersetzen aller openDialogs durch fileopendialogs.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.560 Beiträge
 
Delphi 12 Athens
 
#4

AW: Runtime Error 216 beim Schließen des Programs nur wenn Save/Opendialog ausgeführt

  Alt 15. Mär 2021, 17:16
Über das Problem bin ich auch gerade gestolpert, hätte ich in 10.4.2 nicht mehr mit gerechnet.

Was aber hilft ist das:

TStyleManager.SystemHooks := TStyleManager.SystemHooks - [shDialogs];

Dann sind zwar wie zuvor erwähnt die Dialoge nicht mehr gestylt, aber bieten dafür eine erweiterte Funktionalität.

Jedenfalls eine Error 216 Meldung am Programm-Ende ist gar nicht akzeptabel...

Hast Du das evtl. schon gemeldet bei Quality-Central?
  Mit Zitat antworten Zitat
Antwort Antwort


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:24 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