TCustomTaskDialog: inherit form TLCLComponent and register the widgetset class.

This commit is contained in:
Bart 2023-07-17 13:52:40 +02:00
parent 6fb319fae8
commit fc6bbcc936
5 changed files with 16 additions and 3 deletions

View File

@ -613,7 +613,9 @@ type
property Items[Index: Integer]: TTaskDialogBaseButtonItem read GetItem write SetItem; default; property Items[Index: Integer]: TTaskDialogBaseButtonItem read GetItem write SetItem; default;
end; end;
TCustomTaskDialog = class(TComponent) { TCustomTaskDialog }
TCustomTaskDialog = class(TLCLComponent)
private private
FButton: TTaskDialogButtonItem; FButton: TTaskDialogButtonItem;
FButtons: TTaskDialogButtons; FButtons: TTaskDialogButtons;
@ -640,6 +642,7 @@ type
procedure SetRadioButtons(const Value: TTaskDialogButtons); procedure SetRadioButtons(const Value: TTaskDialogButtons);
function ButtonIDToModalResult(const AButtonID: Integer): TModalResult; function ButtonIDToModalResult(const AButtonID: Integer): TModalResult;
protected protected
class procedure WSRegisterClass; override;
function DoExecute(ParentWnd: HWND): Boolean; dynamic; function DoExecute(ParentWnd: HWND): Boolean; dynamic;
procedure DoOnButtonClicked(AModalResult: Integer; var ACanClose: Boolean); dynamic; procedure DoOnButtonClicked(AModalResult: Integer; var ACanClose: Boolean); dynamic;
public public

View File

@ -118,6 +118,13 @@ begin
Result := mrNone; Result := mrNone;
end; end;
class procedure TCustomTaskDialog.WSRegisterClass;
begin
inherited WSRegisterClass;
RegisterTaskDialog;
end;
destructor TCustomTaskDialog.Destroy; destructor TCustomTaskDialog.Destroy;
begin begin
FButtons.Free; FButtons.Free;

View File

@ -1576,6 +1576,7 @@ end;
class function TWin32WSTaskDialog.Execute(const ADlg: TCustomTaskDialog): Boolean; class function TWin32WSTaskDialog.Execute(const ADlg: TCustomTaskDialog): Boolean;
begin begin
//writeln('TWin32WSTaskDialog.Execute');
Result := inherited Execute(ADlg); Result := inherited Execute(ADlg);
end; end;

View File

@ -16,6 +16,7 @@ implementation
function ExecuteLCLTaskDialog(const ADlg: TTaskDialog): Boolean; function ExecuteLCLTaskDialog(const ADlg: TTaskDialog): Boolean;
begin begin
//writeln('ExecuteLCLTaskDialog');
Result := False; Result := False;
end; end;

View File

@ -103,8 +103,8 @@ type
end; end;
{ TWSTaskDialog } { TWSTaskDialog }
TWSTaskDialogClass = class of TWSTaskDialog;
TWSTaskDialog = class(TWSCommonDialog) TWSTaskDialog = class(TWSLCLComponent)
published published
class function Execute(const ADlg: TCustomTaskDialog): Boolean; virtual; class function Execute(const ADlg: TCustomTaskDialog): Boolean; virtual;
end; end;
@ -200,6 +200,7 @@ end;
class function TWSTaskDialog.Execute(const ADlg: TCustomTaskDialog): Boolean; class function TWSTaskDialog.Execute(const ADlg: TCustomTaskDialog): Boolean;
begin begin
//writeln('TWSTaskDialog.Execute');
Result := ExecuteLCLTaskDialog(TTaskDialog(ADlg)); Result := ExecuteLCLTaskDialog(TTaskDialog(ADlg));
end; end;