![]() |
Caption in TTaskDialog
Liste der Anhänge anzeigen (Anzahl: 2)
In einem TTaskdialog ist der Caption-String nur dann sichtbar, wenn mit den CommonButtons ein Cancel-Button deklariert wird. Dummerweise kann ich in diesem Dialog aber keinen Cancel - Button gebrauchen.
Delphi-Quellcode:
Ist das reguläres Verhalten oder mache ich etwas falsch?
function InsertGUID(FN:string): Integer;
begin result:= mrNO; with TTaskDialog.Create(NIL) do try Caption:= 'GUIDs einfügen'; MainIcon:= tdiShield; Title:= 'GUID in aktuelle Datei einfügen'; Text:= 'Soll eine GUID generiert und in die Datei "' + FN + '" geschrieben werden?'; commonButtons:= [tcbYes,tcbNo,tcbCancel]; // so funktioniert's //commonButtons:= [tcbYes,tcbNo]; // so funktioniert's nicht! flags:= [tfVerificationFlagChecked]; verificationtext:= 'Für alle folgenden Tracks übernehmen'; If Execute Then begin result:= modalresult; If tfVerificationFlagChecked in Flags Then result:= -result; end; finally Free; end; end; Gruß LP |
AW: Caption in TTaskDialog
Eigentlich nicht.
Vielleicht hängt es einfach von der Breite des Dialogs ab?
Delphi-Quellcode:
Text := 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...'
Oder nur Abbrechen, ohne Ja/Nein, also auch mit schmaleren Fenster. Sieht die Titelleiste nur auf den Bildern dünner/flacher aus? Könnte am Fensterstil liegen: mit Abbrechen gibt es ein [x] und damit wohl einen anderen Style. VCL oder WinAPI?
Delphi-Quellcode:
LatestCommonDialogs := False; // False = VCL emuliert diesen Dialog (mit einer TForm)
with TTaskDialog.Create(NIL) do |
AW: Caption in TTaskDialog
Zitat:
Und 'LatestCommonDialogs' müsste wohl 'UseLatestCommonDialogs' heißen. ;-) Gruß LP |
AW: Caption in TTaskDialog
Dieses Thema ist zwar schon alt, aber offensichtlich hat sich nichts geändert am Verhalten.
In Kombination mit Styles wird die Titelzeile nur angezeigt, wenn es einen "Abbruch-Button" gibt. Hat hierzu jemand inzwischen eventuell was rausgefunden ? |
AW: Caption in TTaskDialog
Gibt es dafür einen Bug-Report? Ich könnte dann einen Kommentar mit der Ursache und einem Lösungsvorschlag dazu schreiben.
|
AW: Caption in TTaskDialog
@Uwe Raabe:
Danke für deine Unterstützung. Nein einen offiziellen Report gab es noch nicht, aber jetzt habe ich das mal gemacht. |
AW: Caption in TTaskDialog
Liste der Anhänge anzeigen (Anzahl: 2)
Hier noch mal etwas vollständiger, damit man das besser Testen kann:
Code:
Das Ergebnis:
procedure TfrmMain.TestTaskDialog;
var TaskDialog: TTaskDialog; begin TaskDialog := TTaskDialog.Create(Self); try TaskDialog.Title := 'Titletext'; TaskDialog.Caption := 'Caption'; TaskDialog.Flags := [tfPositionRelativeToWindow, tfSizeToContent]; TaskDialog.CommonButtons := [tcbOk]; TaskDialog.ModalResult := MB_OK; TaskDialog.Execute; finally TaskDialog.Free; end; end; Ohne Style [Windows]: ![]() Mit Style: ![]() |
AW: Caption in TTaskDialog
Das Problem liegt in TSysDialogStyleHook.PaintNC. Dort wird TextRect mit TRect.Empty initialisiert und im weiteren Verlauf Left und Right an die anzuzeigenden Buttons angepasst. Werden nun gar keine Buttons rechts angezeigt verbleibt TextRect.Right bei 0 und es erfolgt keine Textausgabe.
|
AW: Caption in TTaskDialog
Vielen Dank Uwe,
dann kann ich da wohl nicht viel machen oder ? |
AW: Caption in TTaskDialog
Zitat:
Du kannst eventuell die ganze Unit Vcl.SysStyles in dein Projektverzechnis (neben die DPR) kopieren und die vorgeschlagene Änderung implementieren. Bei einem Wechsel der Delphi-Version muss das aber mit der dann gültigen Unit wiederholt werden. Wie aufwändig das genau ist kann ich auch nicht sagen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 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