📄 prsht.pas
字号:
{$EXTERNALSYM PSN_SETACTIVE}
PSN_KILLACTIVE = (PSN_FIRST-1);
{$EXTERNALSYM PSN_KILLACTIVE}
//PSN_VALIDATE = (PSN_FIRST-1);
//{$EXTERNALSYM PSN_VALIDATE}
PSN_APPLY = (PSN_FIRST-2);
{$EXTERNALSYM PSN_APPLY}
PSN_RESET = (PSN_FIRST-3);
{$EXTERNALSYM PSN_RESET}
//PSN_CANCEL = (PSN_FIRST-3);
//{$EXTERNALSYM PSN_CANCEL}
PSN_HELP = (PSN_FIRST-5);
{$EXTERNALSYM PSN_HELP}
PSN_WIZBACK = (PSN_FIRST-6);
{$EXTERNALSYM PSN_WIZBACK}
PSN_WIZNEXT = (PSN_FIRST-7);
{$EXTERNALSYM PSN_WIZNEXT}
PSN_WIZFINISH = (PSN_FIRST-8);
{$EXTERNALSYM PSN_WIZFINISH}
PSN_QUERYCANCEL = (PSN_FIRST-9);
{$EXTERNALSYM PSN_QUERYCANCEL}
PSN_GETOBJECT = (PSN_FIRST-10);
{$EXTERNALSYM PSN_GETOBJECT}
PSN_TRANSLATEACCELERATOR = (PSN_FIRST-12);
{$EXTERNALSYM PSN_TRANSLATEACCELERATOR}
PSN_QUERYINITIALFOCUS = (PSN_FIRST-13);
{$EXTERNALSYM PSN_QUERYINITIALFOCUS}
PSNRET_NOERROR = 0;
{$EXTERNALSYM PSNRET_NOERROR}
PSNRET_INVALID = 1;
{$EXTERNALSYM PSNRET_INVALID}
PSNRET_INVALID_NOCHANGEPAGE = 2;
{$EXTERNALSYM PSNRET_INVALID_NOCHANGEPAGE}
PSNRET_MESSAGEHANDLED = 3;
{$EXTERNALSYM PSNRET_MESSAGEHANDLED}
PSM_SETCURSEL = (WM_USER + 101);
{$EXTERNALSYM PSM_SETCURSEL}
function PropSheet_SetCurSel(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE; Index: Integer): BOOL;
const
PSM_REMOVEPAGE = (WM_USER + 102);
{$EXTERNALSYM PSM_REMOVEPAGE}
procedure PropSheet_RemovePage(hPropSheetDlg: HWND; Index: Integer; hPage: HPROPSHEETPAGE);
const
PSM_ADDPAGE = (WM_USER + 103);
{$EXTERNALSYM PSM_ADDPAGE}
function PropSheet_AddPage(hPropSheetDlg: HWND; hpage: HPROPSHEETPAGE): BOOL;
const
PSM_CHANGED = (WM_USER + 104);
{$EXTERNALSYM PSM_CHANGED}
function PropSheet_Changed(hPropSheetDlg: HWND; hwndPage: HWND): BOOL;
const
PSM_RESTARTWINDOWS = (WM_USER + 105);
{$EXTERNALSYM PSM_RESTARTWINDOWS}
procedure PropSheet_RestartWindows(hPropSheetDlg: HWND);
const
PSM_REBOOTSYSTEM = (WM_USER + 106);
{$EXTERNALSYM PSM_REBOOTSYSTEM}
procedure PropSheet_RebootSystem(hPropSheetDlg: HWND);
const
PSM_CANCELTOCLOSE = (WM_USER + 107);
{$EXTERNALSYM PSM_CANCELTOCLOSE}
procedure PropSheet_CancelToClose(hPropSheetDlg: HWND);
const
PSM_QUERYSIBLINGS = (WM_USER + 108);
{$EXTERNALSYM PSM_QUERYSIBLINGS}
function PropSheet_QuerySiblings(hPropSheetDlg: HWND; Param1: WPARAM; Param2: LPARAM): Integer;
const
PSM_UNCHANGED = (WM_USER + 109);
{$EXTERNALSYM PSM_UNCHANGED}
procedure PropSheet_UnChanged(hPropSheetDlg: HWND; hwndPage: HWND);
const
PSM_APPLY = (WM_USER + 110);
{$EXTERNALSYM PSM_APPLY}
function PropSheet_Apply(hPropSheetDlg: HWND): BOOL;
const
PSM_SETTITLEA = (WM_USER + 111);
{$EXTERNALSYM PSM_SETTITLEA}
PSM_SETTITLEW = (WM_USER + 120);
{$EXTERNALSYM PSM_SETTITLEW}
{$IFDEF UNICODE}
PSM_SETTITLE = PSM_SETTITLEW;
{$EXTERNALSYM PSM_SETTITLE}
{$ELSE}
PSM_SETTITLE = PSM_SETTITLEA;
{$EXTERNALSYM PSM_SETTITLE}
{$ENDIF}
procedure PropSheet_SetTitle(hPropSheetDlg: HWND; dwStyle: DWORD; lpszText: LPTSTR);
const
PSM_SETWIZBUTTONS = (WM_USER + 112);
{$EXTERNALSYM PSM_SETWIZBUTTONS}
procedure PropSheet_SetWizButtons(hPropSheetDlg: HWND; dwFlags: DWORD);
const
PSWIZB_BACK = $00000001;
{$EXTERNALSYM PSWIZB_BACK}
PSWIZB_NEXT = $00000002;
{$EXTERNALSYM PSWIZB_NEXT}
PSWIZB_FINISH = $00000004;
{$EXTERNALSYM PSWIZB_FINISH}
PSWIZB_DISABLEDFINISH = $00000008;
{$EXTERNALSYM PSWIZB_DISABLEDFINISH}
PSM_PRESSBUTTON = (WM_USER + 113);
{$EXTERNALSYM PSM_PRESSBUTTON}
function PropSheet_PressButton(hPropSheetDlg: HWND; iButton: Integer): BOOL;
const
PSBTN_BACK = 0;
{$EXTERNALSYM PSBTN_BACK}
PSBTN_NEXT = 1;
{$EXTERNALSYM PSBTN_NEXT}
PSBTN_FINISH = 2;
{$EXTERNALSYM PSBTN_FINISH}
PSBTN_OK = 3;
{$EXTERNALSYM PSBTN_OK}
PSBTN_APPLYNOW = 4;
{$EXTERNALSYM PSBTN_APPLYNOW}
PSBTN_CANCEL = 5;
{$EXTERNALSYM PSBTN_CANCEL}
PSBTN_HELP = 6;
{$EXTERNALSYM PSBTN_HELP}
PSBTN_MAX = 6;
{$EXTERNALSYM PSBTN_MAX}
PSM_SETCURSELID = (WM_USER + 114);
{$EXTERNALSYM PSM_SETCURSELID}
function PropSheet_SetCurSelByID(hPropSheetDlg: HWND; id: Integer): BOOL;
const
PSM_SETFINISHTEXTA = (WM_USER + 115);
{$EXTERNALSYM PSM_SETFINISHTEXTA}
PSM_SETFINISHTEXTW = (WM_USER + 121);
{$EXTERNALSYM PSM_SETFINISHTEXTW}
{$IFDEF UNICODE}
PSM_SETFINISHTEXT = PSM_SETFINISHTEXTW;
{$EXTERNALSYM PSM_SETFINISHTEXT}
{$ELSE}
PSM_SETFINISHTEXT = PSM_SETFINISHTEXTA;
{$EXTERNALSYM PSM_SETFINISHTEXT}
{$ENDIF}
procedure PropSheet_SetFinishText(hPropSheetDlg: HWND; lpszText: LPTSTR);
const
PSM_GETTABCONTROL = (WM_USER + 116);
{$EXTERNALSYM PSM_GETTABCONTROL}
function PropSheet_GetTabControl(hPropSheetDlg: HWND): HWND;
const
PSM_ISDIALOGMESSAGE = (WM_USER + 117);
{$EXTERNALSYM PSM_ISDIALOGMESSAGE}
function PropSheet_IsDialogMessage(hDlg: HWND; pMsg: LPMSG): BOOL;
const
PSM_GETCURRENTPAGEHWND = (WM_USER + 118);
{$EXTERNALSYM PSM_GETCURRENTPAGEHWND}
function PropSheet_GetCurrentPageHwnd(hDlg: HWND): HWND;
const
PSM_INSERTPAGE = (WM_USER + 119);
{$EXTERNALSYM PSM_INSERTPAGE}
function PropSheet_InsertPage(hPropSheetDlg: HWND; index: Integer; hpage: HPROPSHEETPAGE): BOOL;
const
PSM_SETHEADERTITLEA = (WM_USER + 125);
{$EXTERNALSYM PSM_SETHEADERTITLEA}
PSM_SETHEADERTITLEW = (WM_USER + 126);
{$EXTERNALSYM PSM_SETHEADERTITLEW}
{$IFDEF UNICODE}
PSM_SETHEADERTITLE = PSM_SETHEADERTITLEW;
{$EXTERNALSYM PSM_SETHEADERTITLE}
{$ELSE}
PSM_SETHEADERTITLE = PSM_SETHEADERTITLEA;
{$EXTERNALSYM PSM_SETHEADERTITLE}
{$ENDIF}
function PropSheet_SetHeaderTitle(hWizardDlg: HWND; iPageIndex: Integer; lpszText: LPCSTR): Integer;
const
PSM_SETHEADERSUBTITLEA = (WM_USER + 127);
{$EXTERNALSYM PSM_SETHEADERSUBTITLEA}
PSM_SETHEADERSUBTITLEW = (WM_USER + 128);
{$EXTERNALSYM PSM_SETHEADERSUBTITLEW}
{$IFDEF UNICODE}
PSM_SETHEADERSUBTITLE = PSM_SETHEADERSUBTITLEW;
{$EXTERNALSYM PSM_SETHEADERSUBTITLE}
{$ELSE}
PSM_SETHEADERSUBTITLE = PSM_SETHEADERSUBTITLEA;
{$EXTERNALSYM PSM_SETHEADERSUBTITLE}
{$ENDIF}
procedure PropSheet_SetHeaderSubTitle(hWizardDlg: HWND; iPageIndex: Integer; pszHeaderSubTitle: LPCSTR);
const
PSM_HWNDTOINDEX = (WM_USER + 129);
{$EXTERNALSYM PSM_HWNDTOINDEX}
function PropSheet_HwndToIndex(hPropSheetDlg: HWND; hPageDlg: HWND): Integer;
const
PSM_INDEXTOHWND = (WM_USER + 130);
{$EXTERNALSYM PSM_INDEXTOHWND}
function PropSheet_IndexToHwnd(hPropSheetDlg: HWND; iPageIndex: Integer): HWND;
const
PSM_PAGETOINDEX = (WM_USER + 131);
{$EXTERNALSYM PSM_PAGETOINDEX}
function PropSheet_PageToIndex(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE): Integer;
const
PSM_INDEXTOPAGE = (WM_USER + 132);
{$EXTERNALSYM PSM_INDEXTOPAGE}
function PropSheet_IndexToPage(hPropSheetDlg: HWND; iPageIndex: Integer): HPROPSHEETPAGE;
const
PSM_IDTOINDEX = (WM_USER + 133);
{$EXTERNALSYM PSM_IDTOINDEX}
function PropSheet_IdToIndex(hPropSheetDlg: HWND; iPageId: Integer): Integer;
const
PSM_INDEXTOID = (WM_USER + 134);
{$EXTERNALSYM PSM_INDEXTOID}
function PropSheet_IndexToId(hPropSheetDlg: HWND; iPageIndex: Integer): Integer;
const
PSM_GETRESULT = (WM_USER + 135);
{$EXTERNALSYM PSM_GETRESULT}
function PropSheet_GetResult(hPropSheetDlg: HWND): BOOL;
const
PSM_RECALCPAGESIZES = (WM_USER + 136);
{$EXTERNALSYM PSM_RECALCPAGESIZES}
function PropSheet_RecalcPageSizes(hPropSheetDlg: HWND): BOOL;
const
ID_PSRESTARTWINDOWS = $2;
{$EXTERNALSYM ID_PSRESTARTWINDOWS}
ID_PSREBOOTSYSTEM = (ID_PSRESTARTWINDOWS or $1);
{$EXTERNALSYM ID_PSREBOOTSYSTEM}
WIZ_CXDLG = 276;
{$EXTERNALSYM WIZ_CXDLG}
WIZ_CYDLG = 140;
{$EXTERNALSYM WIZ_CYDLG}
WIZ_CXBMP = 80;
{$EXTERNALSYM WIZ_CXBMP}
WIZ_BODYX = 92;
{$EXTERNALSYM WIZ_BODYX}
WIZ_BODYCX = 184;
{$EXTERNALSYM WIZ_BODYCX}
PROP_SM_CXDLG = 212;
{$EXTERNALSYM PROP_SM_CXDLG}
PROP_SM_CYDLG = 188;
{$EXTERNALSYM PROP_SM_CYDLG}
PROP_MED_CXDLG = 227;
{$EXTERNALSYM PROP_MED_CXDLG}
PROP_MED_CYDLG = 215;
{$EXTERNALSYM PROP_MED_CYDLG}
PROP_LG_CXDLG = 252;
{$EXTERNALSYM PROP_LG_CXDLG}
PROP_LG_CYDLG = 218;
{$EXTERNALSYM PROP_LG_CYDLG}
implementation
const
comctl32 = 'comctl32.dll';
function CreatePropertySheetPageA; external comctl32 name 'CreatePropertySheetPageA';
function CreatePropertySheetPageW; external comctl32 name 'CreatePropertySheetPageW';
function DestroyPropertySheetPage; external comctl32 name 'DestroyPropertySheetPage';
function PropertySheetA; external comctl32 name 'PropertySheetA';
function PropertySheetW; external comctl32 name 'PropertySheetW';
{$IFDEF UNICODE}
function CreatePropertySheetPage; external comctl32 name 'CreatePropertySheetPageW';
function PropertySheet; external comctl32 name 'PropertySheetW';
{$ELSE}
function CreatePropertySheetPage; external comctl32 name 'CreatePropertySheetPageA';
function PropertySheet; external comctl32 name 'PropertySheetA';
{$ENDIF}
function PropSheet_SetCurSel(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE; Index: Integer): BOOL;
begin
Result := BOOL(SendMessage(hPropSheetDlg, PSM_SETCURSEL, WPARAM(Index), LPARAM(hPage)));
end;
procedure PropSheet_RemovePage(hPropSheetDlg: HWND; Index: Integer; hPage: HPROPSHEETPAGE);
begin
SendMessage(hPropSheetDlg, PSM_REMOVEPAGE, Index, LPARAM(hPage));
end;
function PropSheet_AddPage(hPropSheetDlg: HWND; hpage: HPROPSHEETPAGE): BOOL;
begin
Result := BOOL(SendMessage(hPropSheetDlg, PSM_ADDPAGE, 0, LPARAM(hpage)));
end;
function PropSheet_Changed(hPropSheetDlg: HWND; hwndPage: HWND): BOOL;
begin
Result := BOOL(SendMessage(hPropSheetDlg, PSM_CHANGED, WPARAM(hwndPage), 0));
end;
procedure PropSheet_RestartWindows(hPropSheetDlg: HWND);
begin
SendMessage(hPropSheetDlg, PSM_RESTARTWINDOWS, 0, 0);
end;
procedure PropSheet_RebootSystem(hPropSheetDlg: HWND);
begin
SendMessage(hPropSheetDlg, PSM_REBOOTSYSTEM, 0, 0);
end;
procedure PropSheet_CancelToClose(hPropSheetDlg: HWND);
begin
PostMessage(hPropSheetDlg, PSM_CANCELTOCLOSE, 0, 0);
end;
function PropSheet_QuerySiblings(hPropSheetDlg: HWND; Param1: WPARAM; Param2: LPARAM): Integer;
begin
Result := SendMessage(hPropSheetDlg, PSM_QUERYSIBLINGS, Param1, Param2);
end;
procedure PropSheet_UnChanged(hPropSheetDlg: HWND; hwndPage: HWND);
begin
SendMessage(hPropSheetDlg, PSM_UNCHANGED, WPARAM(hwndPage), 0);
end;
function PropSheet_Apply(hPropSheetDlg: HWND): BOOL;
begin
Result := BOOL(SendMessage(hPropSheetDlg, PSM_APPLY, 0, 0));
end;
procedure PropSheet_SetTitle(hPropSheetDlg: HWND; dwStyle: DWORD; lpszText: LPTSTR);
begin
SendMessage(hPropSheetDlg, PSM_SETTITLE, dwStyle, LPARAM(LPCTSTR(lpszText)));
end;
procedure PropSheet_SetWizButtons(hPropSheetDlg: HWND; dwFlags: DWORD);
begin
PostMessage(hPropSheetDlg, PSM_SETWIZBUTTONS, 0, LPARAM(dwFlags));
end;
function PropSheet_PressButton(hPropSheetDlg: HWND; iButton: Integer): BOOL;
begin
Result := PostMessage(hPropSheetDlg, PSM_PRESSBUTTON, WPARAM(iButton), 0);
end;
function PropSheet_SetCurSelByID(hPropSheetDlg: HWND; id: Integer): BOOL;
begin
Result := BOOL(SendMessage(hPropSheetDlg, PSM_SETCURSELID, 0, LPARAM(id)));
end;
procedure PropSheet_SetFinishText(hPropSheetDlg: HWND; lpszText: LPTSTR);
begin
SendMessage(hPropSheetDlg, PSM_SETFINISHTEXT, 0, LPARAM(lpszText));
end;
function PropSheet_GetTabControl(hPropSheetDlg: HWND): HWND;
begin
Result := SendMessage(hPropSheetDlg, PSM_GETTABCONTROL, 0, 0);
end;
function PropSheet_IsDialogMessage(hDlg: HWND; pMsg: LPMSG): BOOL;
begin
Result := BOOL(SendMessage(hDlg, PSM_ISDIALOGMESSAGE, 0, LPARAM(pMsg)));
end;
function PropSheet_GetCurrentPageHwnd(hDlg: HWND): HWND;
begin
Result := SendMessage(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0);
end;
function PropSheet_InsertPage(hPropSheetDlg: HWND; index: Integer; hpage: HPROPSHEETPAGE): BOOL;
begin
Result := BOOL(SendMessage(hPropSheetDlg, PSM_INSERTPAGE, WPARAM(index), LPARAM(hpage)));
end;
function PropSheet_SetHeaderTitle(hWizardDlg: HWND; iPageIndex: Integer; lpszText: LPCSTR): Integer;
begin
Result := SendMessage(hWizardDlg, PSM_SETHEADERTITLE, WPARAM(iPageIndex), LPARAM(lpszText));
end;
procedure PropSheet_SetHeaderSubTitle(hWizardDlg: HWND; iPageIndex: Integer; pszHeaderSubTitle: LPCSTR);
begin
SendMessage(hWizardDlg, PSM_SETHEADERSUBTITLE, WPARAM(iPageIndex), LPARAM(pszHeaderSubTitle));
end;
function PropSheet_HwndToIndex(hPropSheetDlg: HWND; hPageDlg: HWND): Integer;
begin
Result := SendMessage(hPropSheetDlg, PSM_HWNDTOINDEX, WPARAM(hPageDlg), 0);
end;
function PropSheet_IndexToHwnd(hPropSheetDlg: HWND; iPageIndex: Integer): HWND;
begin
Result := SendMessage(hPropSheetDlg, PSM_INDEXTOHWND, WPARAM(iPageIndex), 0);
end;
function PropSheet_PageToIndex(hPropSheetDlg: HWND; hPage: HPROPSHEETPAGE): Integer;
begin
Result := SendMessage(hPropSheetDlg, PSM_PAGETOINDEX, 0, LPARAM(hpage));
end;
function PropSheet_IndexToPage(hPropSheetDlg: HWND; iPageIndex: Integer): HPROPSHEETPAGE;
begin
Result := HPROPSHEETPAGE(SendMessage(hPropSheetDlg, PSM_INDEXTOPAGE, WPARAM(iPageIndex), 0));
end;
function PropSheet_IdToIndex(hPropSheetDlg: HWND; iPageId: Integer): Integer;
begin
Result := SendMessage(hPropSheetDlg, PSM_IDTOINDEX, 0, LPARAM(iPageId));
end;
function PropSheet_IndexToId(hPropSheetDlg: HWND; iPageIndex: Integer): Integer;
begin
Result := SendMessage(hPropSheetDlg, PSM_INDEXTOID, WPARAM(iPageIndex), 0)
end;
function PropSheet_GetResult(hPropSheetDlg: HWND): BOOL;
begin
Result := BOOL(SendMessage(hPropSheetDlg, PSM_GETRESULT, 0, 0));
end;
function PropSheet_RecalcPageSizes(hPropSheetDlg: HWND): BOOL;
begin
Result := BOOL(SendMessage(hPropSheetDlg, PSM_RECALCPAGESIZES, 0, 0));
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -