![]() |
ShowMessage 2. Parameter
Hallo Leute,
eine Kleinigkeit zum neuen Jahr. Ich wusste nicht, dass
Delphi-Quellcode:
einen zweiten Parameter hat. Ich lese in der Hilfe, verstehe sie aber nicht!
ShowMessage
Delphi-Quellcode:
kann ich mir noch vorstellen. Aber das Fenster lässt sich immer mit <Esc> schließen. Was soll der Parameter?
tfAllowDialogCancellation
Gruß Willie. |
AW: ShowMessage 2. Parameter
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
AW: ShowMessage 2. Parameter
Zitat:
|
AW: ShowMessage 2. Parameter
Wieso unnötig? ShowMessage mit zwei Parametern ruft ja den neuen TaskDialog auf, wenn nicht irgendetwas dagegen spricht. Am Ende landet man hier und da wird die Prüfung gemacht:
Delphi-Quellcode:
Die beiden Dialoge im ScreenShot entstehen aus demselben Code, jeweils durch ändern von UseLatestCommonDialogs.
function MessageDlgPosHelp(const Msg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer; const HelpFileName: string; TaskDlgFlags: TTaskDialogFlags): Integer; begin if TOSVersion.Check(6) and UseLatestCommonDialogs and IsNewCommonCtrl and not ((shDialogs in TStyleManager.SystemHooks) and not StyleServices(Screen.ActiveCustomForm).IsSystemStyle) then Result := DoTaskMessageDlgPosHelp('', Msg, DlgType, Buttons, HelpCtx, X, Y, HelpFileName, TaskDlgFlags) else Result := DoMessageDlgPosHelp(CreateMessageDialog(Msg, DlgType, Buttons), HelpCtx, X, Y, HelpFileName); end; |
AW: ShowMessage 2. Parameter
Hallo Uwe,
ich habe Themes und CommCtrl eingebunden. Aber mein Delphi 11.3 kennt
Delphi-Quellcode:
nicht. Die Hilfe auch nicht.
IsNewCommonCtrl
|
AW: ShowMessage 2. Parameter
Zitat:
vcl.Dialogs; |
AW: ShowMessage 2. Parameter
Die Abfrage mal auseinandergenommen:
Delphi-Quellcode:
TOSVersion.Check(6) bedeutet Windows Vista oder höher
if TOSVersion.Check(6) and
UseLatestCommonDialogs and IsNewCommonCtrl and not ((shDialogs in TStyleManager.SystemHooks) and not StyleServices(Screen.ActiveCustomForm).IsSystemStyle) then 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. |
AW: ShowMessage 2. Parameter
Liste der Anhänge anzeigen (Anzahl: 1)
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 :-) |
AW: ShowMessage 2. Parameter
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat:
Zitat:
|
AW: ShowMessage 2. Parameter
Liste der Anhänge anzeigen (Anzahl: 1)
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:
Anhang 57332 Wie du siehst, komme ich in den ersten Zweig rein. Aber was passiert bei dir denn, wenn du diese Zeilen ausprobierst?
Delphi-Quellcode:
Macht das einen Unterschied?
ShowMessage('Test', [tfAllowDialogCancellation]);
ShowMessage('Test', []); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:45 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