TaskDialog: Start refactoring TTaskDialog: layout the basic infrastructure for a TWSTaskDialog class.

This commit is contained in:
Bart 2023-07-17 11:05:33 +02:00
parent 005710726a
commit cfbb089e1f
17 changed files with 125 additions and 0 deletions

View File

@ -44,6 +44,7 @@ function RegisterSelectDirectoryDialog: Boolean;
function RegisterColorDialog: Boolean;
function RegisterColorButton: Boolean;
function RegisterFontDialog: Boolean;
function RegisterTaskDialog: Boolean;
// StdCtrls
function RegisterCustomScrollBar: Boolean;
function RegisterCustomGroupBox: Boolean;
@ -254,6 +255,11 @@ begin
Result := True;
end;
function RegisterTaskDialog: Boolean; alias : 'WSRegisterTaskDialog';
begin
Result := False;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin

View File

@ -51,6 +51,7 @@ function RegisterSelectDirectoryDialog: Boolean;
function RegisterColorDialog: Boolean;
function RegisterColorButton: Boolean;
function RegisterFontDialog: Boolean;
function RegisterTaskDialog: Boolean;
// StdCtrls
function RegisterCustomScrollBar: Boolean;
function RegisterCustomGroupBox: Boolean;
@ -265,6 +266,11 @@ begin
Result := False;
end;
function RegisterTaskDialog: Boolean; alias : 'WSRegisterTaskDialog';
begin
Result := False;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin

View File

@ -40,6 +40,7 @@ function RegisterSelectDirectoryDialog: Boolean;
function RegisterColorDialog: Boolean;
function RegisterColorButton: Boolean;
function RegisterFontDialog: Boolean;
function RegisterTaskDialog: Boolean;
// StdCtrls
function RegisterCustomScrollBar: Boolean;
function RegisterCustomGroupBox: Boolean;
@ -265,6 +266,11 @@ begin
Result := False;
end;
function RegisterTaskDialog: Boolean; alias : 'WSRegisterTaskDialog';
begin
Result := False;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin

View File

@ -39,6 +39,7 @@ function RegisterSelectDirectoryDialog: Boolean;
function RegisterColorDialog: Boolean;
function RegisterColorButton: Boolean;
function RegisterFontDialog: Boolean;
function RegisterTaskDialog: Boolean;
// StdCtrls
function RegisterCustomScrollBar: Boolean;
function RegisterCustomGroupBox: Boolean;
@ -261,6 +262,11 @@ begin
Result := True;
end;
function RegisterTaskDialog: Boolean; alias : 'WSRegisterTaskDialog';
begin
Result := False;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin

View File

@ -40,6 +40,7 @@ function RegisterSelectDirectoryDialog: Boolean;
function RegisterColorDialog: Boolean;
function RegisterColorButton: Boolean;
function RegisterFontDialog: Boolean;
function RegisterTaskDialog: Boolean;
// StdCtrls
function RegisterCustomScrollBar: Boolean;
function RegisterCustomGroupBox: Boolean;
@ -292,6 +293,11 @@ begin
Result := True;
end;
function RegisterTaskDialog: Boolean; alias : 'WSRegisterTaskDialog';
begin
Result := False;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin

View File

@ -44,6 +44,7 @@ function RegisterSelectDirectoryDialog: Boolean;
function RegisterColorDialog: Boolean;
function RegisterColorButton: Boolean;
function RegisterFontDialog: Boolean;
function RegisterTaskDialog: Boolean;
// StdCtrls
function RegisterCustomScrollBar: Boolean;
function RegisterCustomGroupBox: Boolean;
@ -292,6 +293,11 @@ begin
Result := True;
end;
function RegisterTaskDialog: Boolean; alias : 'WSRegisterTaskDialog';
begin
Result := False;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin

View File

@ -54,6 +54,7 @@ function RegisterSelectDirectoryDialog: Boolean;
function RegisterColorDialog: Boolean;
function RegisterColorButton: Boolean;
function RegisterFontDialog: Boolean;
function RegisterTaskDialog: Boolean;
// StdCtrls
function RegisterCustomScrollBar: Boolean;
function RegisterCustomGroupBox: Boolean;
@ -303,6 +304,11 @@ begin
Result := True;
end;
function RegisterTaskDialog: Boolean; alias : 'WSRegisterTaskDialog';
begin
Result := False;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin

View File

@ -42,6 +42,7 @@ function RegisterSelectDirectoryDialog: Boolean;
function RegisterColorDialog: Boolean;
function RegisterColorButton: Boolean;
function RegisterFontDialog: Boolean;
function RegisterTaskDialog: Boolean;
// StdCtrls
function RegisterCustomScrollBar: Boolean;
function RegisterCustomGroupBox: Boolean;
@ -254,6 +255,11 @@ begin
Result := True;
end;
function RegisterTaskDialog: Boolean; alias : 'WSRegisterTaskDialog';
begin
Result := False;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin

View File

@ -38,6 +38,7 @@ function RegisterSelectDirectoryDialog: Boolean;
function RegisterColorDialog: Boolean;
function RegisterColorButton: Boolean;
function RegisterFontDialog: Boolean;
function RegisterTaskDialog: Boolean;
// StdCtrls
function RegisterCustomScrollBar: Boolean;
function RegisterCustomGroupBox: Boolean;
@ -236,6 +237,11 @@ begin
Result := False;
end;
function RegisterTaskDialog: Boolean; alias : 'WSRegisterTaskDialog';
begin
Result := False;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin

View File

@ -39,6 +39,7 @@ function RegisterSelectDirectoryDialog: Boolean;
function RegisterColorDialog: Boolean;
function RegisterColorButton: Boolean;
function RegisterFontDialog: Boolean;
function RegisterTaskDialog: Boolean;
// StdCtrls
function RegisterCustomScrollBar: Boolean;
function RegisterCustomGroupBox: Boolean;
@ -269,6 +270,11 @@ begin
Result := True;
end;
function RegisterTaskDialog: Boolean; alias : 'WSRegisterTaskDialog';
begin
Result := False;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin

View File

@ -39,6 +39,7 @@ function RegisterSelectDirectoryDialog: Boolean;
function RegisterColorDialog: Boolean;
function RegisterColorButton: Boolean;
function RegisterFontDialog: Boolean;
function RegisterTaskDialog: Boolean;
// StdCtrls
function RegisterCustomScrollBar: Boolean;
function RegisterCustomGroupBox: Boolean;
@ -272,6 +273,11 @@ begin
Result := True;
end;
function RegisterTaskDialog: Boolean; alias : 'WSRegisterTaskDialog';
begin
Result := False;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin

View File

@ -39,6 +39,7 @@ function RegisterSelectDirectoryDialog: Boolean;
function RegisterColorDialog: Boolean;
function RegisterColorButton: Boolean;
function RegisterFontDialog: Boolean;
function RegisterTaskDialog: Boolean;
// StdCtrls
function RegisterCustomScrollBar: Boolean;
function RegisterCustomGroupBox: Boolean;
@ -272,6 +273,11 @@ begin
Result := True;
end;
function RegisterTaskDialog: Boolean; alias : 'WSRegisterTaskDialog';
begin
Result := False;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin

View File

@ -157,6 +157,13 @@ type
constructor Create(ADialog: TOpenDialog);
end;
{ TWin32WSTaskDialog }
TWin32WSTaskDialog = class(TWSTaskDialog)
public
class function Execute(const ACommonDialog: TCommonDialog): Boolean; override;
end;
function OpenFileDialogCallBack(Wnd: HWND; uMsg: UINT; {%H-}wParam: WPARAM;
lParam: LPARAM): UINT_PTR; stdcall;
@ -1565,6 +1572,13 @@ begin
FDialog := ADialog;
end;
{ TWin32WSTaskDialog }
class function TWin32WSTaskDialog.Execute(const ACommonDialog: TCommonDialog): Boolean;
begin
Result := inherited Execute(ACommonDialog);
end;
initialization
if (Win32MajorVersion = 4) then
OpenFileNameSize := SizeOf(OPENFILENAME_NT4)

View File

@ -39,6 +39,7 @@ function RegisterSelectDirectoryDialog: Boolean;
function RegisterColorDialog: Boolean;
function RegisterColorButton: Boolean;
function RegisterFontDialog: Boolean;
function RegisterTaskDialog: Boolean;
// StdCtrls
function RegisterCustomScrollBar: Boolean;
function RegisterCustomGroupBox: Boolean;
@ -273,6 +274,12 @@ begin
Result := True;
end;
function RegisterTaskDialog: Boolean; alias : 'WSRegisterTaskDialog';
begin
RegisterWSComponent(TTaskDialog, TWin32WSTaskDialog);
Result := True;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin

View File

@ -39,6 +39,7 @@ function RegisterSelectDirectoryDialog: Boolean;
function RegisterColorDialog: Boolean;
function RegisterColorButton: Boolean;
function RegisterFontDialog: Boolean;
function RegisterTaskDialog: Boolean;
// StdCtrls
function RegisterCustomScrollBar: Boolean;
function RegisterCustomGroupBox: Boolean;
@ -263,6 +264,11 @@ begin
Result := False;
end;
function RegisterTaskDialog: Boolean; alias : 'WSRegisterTaskDialog';
begin
Result := False;
end;
// StdCtrls
function RegisterCustomScrollBar: Boolean; alias : 'WSRegisterCustomScrollBar';
begin

View File

@ -102,6 +102,13 @@ type
class function QueryWSEventCapabilities(const ACommonDialog: TCommonDialog): TCDWSEventCapabilities; override;
end;
{ TWSTaskDialog }
TWSTaskDialog = class(TWSCommonDialog)
published
class function Execute(const ACommonDialog: TCommonDialog): Boolean; virtual;
end;
{ WidgetSetRegistration }
procedure RegisterCommonDialog;
@ -112,6 +119,7 @@ type
procedure RegisterColorDialog;
procedure RegisterColorButton;
procedure RegisterFontDialog;
procedure RegisterTaskDialog;
implementation
@ -188,6 +196,14 @@ begin
Result:=inherited QueryWSEventCapabilities(ACommonDialog);
end;
{ TWSTaskDialog }
class function TWSTaskDialog.Execute(const ACommonDialog: TCommonDialog): Boolean;
begin
//ToDo call new LCLTaskDialog.Execute
Result := False;
end;
{ WidgetSetRegistration }
procedure RegisterCommonDialog;
@ -278,4 +294,13 @@ begin
Done := True;
end;
procedure RegisterTaskDialog;
const
Done: Boolean = False;
begin
if Done then exit;
WSRegisterTaskDialog;
Done := True;
end;
end.

View File

@ -61,6 +61,7 @@ function WSRegisterSelectDirectoryDialog: Boolean; external name 'WSRegisterSele
function WSRegisterColorDialog: Boolean; external name 'WSRegisterColorDialog';
function WSRegisterColorButton: Boolean; external name 'WSRegisterColorButton';
function WSRegisterFontDialog: Boolean; external name 'WSRegisterFontDialog';
function WSRegisterTaskDialog: Boolean; external name 'WSRegisterTaskDialog';
// StdCtrls
function WSRegisterCustomScrollBar: Boolean; external name 'WSRegisterCustomScrollBar';
function WSRegisterCustomGroupBox: Boolean; external name 'WSRegisterCustomGroupBox';