AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Fehler TTaskDialog tfVerificationFlagChecked
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler TTaskDialog tfVerificationFlagChecked

Ein Thema von dataspider · begonnen am 13. Feb 2025 · letzter Beitrag vom 13. Feb 2025
Antwort Antwort
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.356 Beiträge
 
Delphi 11 Alexandria
 
#1

Fehler TTaskDialog tfVerificationFlagChecked

  Alt 13. Feb 2025, 10:02
Ich hätte jetzt echt den TaskDialog von Delphi mit einen Checkbox gebraucht,
habe aber festgestellt, dass dieser in Delphi 11.2 nicht funktioniert.

Delphi-Quellcode:
procedure TFrmMain.ErrorDialog(var AShowAgain: Boolean);
Var
  LTaskDialog: TTaskDialog;
begin
  LTaskDialog := TTaskDialog.Create(Application);
  try
    LTaskDialog.Caption := 'Caption: Proc...';
    LTaskDialog.Text := 'Fehlertext';
    LTaskDialog.VerificationText := 'Diesen Fehler nicht mehr anzeigen';
    LTaskDialog.CommonButtons := [TTaskDialogCommonButton.tcbOk];
    LTaskDialog.MainIcon := tdiInformation;
    //LTaskDialog.Flags := [tfAllowDialogCancellation, tfVerificationFlagChecked]; // bringt nichts. Flags bleiben genau so, egal ob checked oder nicht
    TaskDialog.Execute;
    AShowAgain := (TTaskDialogFlag.tfVerificationFlagChecked in LTaskDialog.Flags); // Flag ist nicht gesetzt
  finally
    LTaskDialog.Free;
  end;
end;
Nur leider wird das Flag einfach nicht gesetzt.
Auch eine Initialisierung mit Setzen des Flags vor dem Execute bringt nichts.

Einen Fehler habe ich in der VCL ja gefunden:
Delphi-Quellcode:
procedure TCustomTaskDialog.DoOnVerificationClicked(Checked: Boolean);
begin
  if Assigned(FOnVerificationClicked) then
  begin
    if Checked then
      Include(FFlags, tfVerificationFlagChecked)
    else
      Exclude(FFlags, tfVerificationFlagChecked);
    FOnVerificationClicked(Self);
  end;
end;
Müsste eigentlich so sein:
Delphi-Quellcode:
procedure TCustomTaskDialog.DoOnVerificationClicked(Checked: Boolean);
begin
  if Checked then
    Include(FFlags, tfVerificationFlagChecked)
  else
    Exclude(FFlags, tfVerificationFlagChecked);
  if Assigned(FOnVerificationClicked) then
    FOnVerificationClicked(Self);
end;

Das Flag wird nur gesetzt, wenn ich dem Ereignis OnVerificationClicked eine Methode zuweise.
Dachte ich, habe ich also gemacht und im Debugger sehe ich auch, dass Include(FFlags, tfVerificationFlagChecked) ausgeführt wird.
Trotzdem ist das Flag nach dem Execute wieder weg.

Da ich noch 11.2 nutze die Frage in die Runde:
Ist das evtl. in 11.3 schon behoben? Dann würde ich evtl. ein Update versuchen.

Danke

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.356 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Fehler TTaskDialog tfVerificationFlagChecked

  Alt 13. Feb 2025, 10:22
Sorry, gestern war ich wohl blind

Ich hatte noch eine TaskDialog - Komponente auf dem Formular.
Ich hätte nur anstatt TaskDialog.Execute LTaskDialog.Execute schreiben müssen.

Tut mir leid, hat sich erledigt...

Frank
Frank Reim
  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 15:33 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 by Thomas Breitkreuz