From cbd7579c15ac20b4ec809e2440374ff44ac471f2 Mon Sep 17 00:00:00 2001 From: Bart <9132501-flyingsheep@users.noreply.gitlab.com> Date: Fri, 28 Jul 2023 16:31:29 +0200 Subject: [PATCH] TTaskDialog: fix Result value of Execute method: - previously it returned True if the dialog succeeded to show, even if the dialog was cancelled. - now it is False if the dialog is canceled. - See https://docwiki.embarcadero.com/Libraries/Alexandria/en/Vcl.Dialogs.TCustomTaskDialog.Execute --- lcl/include/taskdialog.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lcl/include/taskdialog.inc b/lcl/include/taskdialog.inc index b91119f28e..6c60d70b32 100644 --- a/lcl/include/taskdialog.inc +++ b/lcl/include/taskdialog.inc @@ -147,7 +147,7 @@ begin FQueryResult := ''; ButtonID := TWSTaskDialogClass(WidgetSetClass).Execute(Self, ParentWnd, ARadioRes); FModalResult := ButtonIDToModalResult(ButtonID); - Result := (ButtonID >= 0); + Result := (ButtonID >= 0) and (ModalResult <> mrCancel); if (ARadioRes >= TaskDialogFirstRadioButtonIndex) and (aRadioRes-TaskDialogFirstRadioButtonIndex < RadioButtons.Count) then FRadioButton := RadioButtons[ARadioRes-TaskDialogFirstRadioButtonIndex] as TTaskDialogRadioButtonItem else