AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ShowMessage 2. Parameter

Ein Thema von Willie1 · begonnen am 10. Jan 2025 · letzter Beitrag vom 14. Jan 2025
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.758 Beiträge
 
Delphi 12 Athens
 
#1

AW: ShowMessage 2. Parameter

  Alt 11. Jan 2025, 22:27
Die Abfrage mal auseinandergenommen:
Delphi-Quellcode:
  if TOSVersion.Check(6) and
     UseLatestCommonDialogs and
     IsNewCommonCtrl and
     not ((shDialogs in TStyleManager.SystemHooks) and not StyleServices(Screen.ActiveCustomForm).IsSystemStyle) then
TOSVersion.Check(6) bedeutet Windows Vista oder höher

UseLatestCommonDialogs ist zwar per default = True, könnte aber irgendwo in deinem Code geändert worden sein

Für IsNewCommonCtrl muss in den Projekt-Optionen unter Manifest Laufzeit-Themes aktiviert sein.

der not Block bedeutet: Es muss shDialogs aus TStyleManager.SystemHooks entfernt werden oder es muss der Windows Style aktiv sein. Solltest du also mit VCL-Styles arbeiten, muss das shDialogs da raus, denn dann werden die Dialoge von Windows verwendet. Sollen die Dialog auch im VCL-Style dargestellt werden, dann gehen halt die neuen Task-Dialoge nicht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
187 Beiträge
 
Delphi 12 Athens
 
#2

AW: ShowMessage 2. Parameter

  Alt 11. Jan 2025, 22:35
Ich benutze die "neuen" Dialoge mit einer kleinen Hilfsunit und die funktionieren eigentlich auch mit Styles.
Die Unit habe ich mal angehängt. Und in Kombination mit dem Vorschlag von Uwe Raabe kannst du dir schon was anständiges basteln
Angehängte Dateien
Dateityp: zip tb.Dialogs.zip (32,0 KB, 16x aufgerufen)
Debuggers don’t remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
742 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: ShowMessage 2. Parameter

  Alt 12. Jan 2025, 17:43
Die Abfrage mal auseinandergenommen:
Delphi-Quellcode:
  if TOSVersion.Check(6) and
     UseLatestCommonDialogs and
     IsNewCommonCtrl and
     not ((shDialogs in TStyleManager.SystemHooks) and not StyleServices(Screen.ActiveCustomForm).IsSystemStyle) then
TOSVersion.Check(6) bedeutet Windows Vista oder höher

UseLatestCommonDialogs ist zwar per default = True, könnte aber irgendwo in deinem Code geändert worden sein
ist Ok
Zitat:

Für IsNewCommonCtrl muss in den Projekt-Optionen unter Manifest Laufzeit-Themes aktiviert sein.
Ist aktiviert!
Zitat:

der not Block bedeutet: Es muss shDialogs aus TStyleManager.SystemHooks entfernt werden oder es muss der Windows Style aktiv sein. Solltest du also mit VCL-Styles arbeiten, muss das shDialogs da raus, denn dann werden die Dialoge von Windows verwendet. Sollen die Dialog auch im VCL-Style dargestellt werden, dann gehen halt die neuen Task-Dialoge nicht.
Ich verstehe deine Erklärungen- Vcl.Dialogs ist eingebunden. Außerhalb des Screenshots ist außer then alles in Ordnung.
Angehängte Grafiken
Dateityp: jpg Screenshot (7).jpg (92,9 KB, 21x aufgerufen)
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.057 Beiträge
 
Delphi 12 Athens
 
#4

AW: ShowMessage 2. Parameter

  Alt 12. Jan 2025, 18:30
Du brauchst diese Funktion nicht kopieren, denn die wird intern bereits verwendet, wenn du ShowMessage aufrufst. Du könntest darin aber einen Haltepunkt setzen und prüfen, was dort passiert, wenn du ShowMessage verwendest. Das sieht dann z.B. so aus:

Screenshot 2025-01-12 192600.png

Wie du siehst, komme ich in den ersten Zweig rein.

Aber was passiert bei dir denn, wenn du diese Zeilen ausprobierst?
Delphi-Quellcode:
  ShowMessage('Test', [tfAllowDialogCancellation]);
  ShowMessage('Test', []);
Macht das einen Unterschied?
Sebastian Jänicke
AppCentral

Geändert von jaenicke (12. Jan 2025 um 18:44 Uhr)
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
742 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

AW: ShowMessage 2. Parameter

  Alt 13. Jan 2025, 17:28
Hallo,

jetzt weiß ich woran es liegt. <1>lässt es such mit esc beenden <2> nur mit Ok. Aber nur, wenn man kein Farbschema vom Emacadero ausgewählt hat. Dann ist das Hinweisfenster klein und lässt sich immer mit esc beenden. Ich habe zum ersten Mal ein Farbschema benutzt. Beim Farbschema wird wohl der VistaTaskDialog nicht benutzt!? Danke für eure Geduld.

Gruß Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.057 Beiträge
 
Delphi 12 Athens
 
#6

AW: ShowMessage 2. Parameter

  Alt 13. Jan 2025, 19:02
Aber nur, wenn man kein Farbschema vom Emacadero ausgewählt hat. Dann ist das Hinweisfenster klein und lässt sich immer mit esc beenden. Ich habe zum ersten Mal ein Farbschema benutzt. Beim Farbschema wird wohl der VistaTaskDialog nicht benutzt!?
Genau das hat Uwe ja anhand des Quelltextes erklärt:
Solltest du also mit VCL-Styles arbeiten, muss das shDialogs da raus, denn dann werden die Dialoge von Windows verwendet. Sollen die Dialog auch im VCL-Style dargestellt werden, dann gehen halt die neuen Task-Dialoge nicht.
Du kannst das also einstellen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
638 Beiträge
 
Delphi XE6 Enterprise
 
#7

AW: ShowMessage 2. Parameter

  Alt 14. Jan 2025, 08:24
Sollen die Dialog auch im VCL-Style dargestellt werden, dann gehen halt die neuen Task-Dialoge nicht.
Dafür gibts doch die VCL Styles Utils: https://github.com/RRUZ/vcl-styles-utils. Damit kann man auch TaskDialoge "stylen".
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 17:28 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