Hi,
Ich versuche gerade so einen PropertySheet Dialog zu erstellen. Das ganze ist im Moment zu Testzwecken nur so dahin geklatscht:
Delphi-Quellcode:
function PropSheetProc(Wnd: HWnd; Msg: Integer; WParam: WParam; LParam: LParam): Boolean;
stdcall;
begin
Result := true;
end;
procedure TForm1.Button1Click(Sender: TObject);
var psp: TPropSheetpage;
ps: TPropSheetHeader;
page: Pointer;
begin
ZeroMemory(@psp,0);
psp.dwSize := SizeOf(TPropSheetpage);
psp.hInstance := hInstance;
psp.dwFlags := PSP_DEFAULT
or PSP_USEHEADERTITLE;
psp.pfnDlgProc := @PropSheetProc;
psp.pszHeaderTitle := '
Test';
page := CreatePropertySheetPage(psp);
if page =
nil then
ShowMessage(SysErrorMessage(GetLastError));
ZeroMemory(@ps,0);
ps.dwSize := SizeOf(TPropSheetHeader);
ps.nStartPage := 0;
ps.nPages := 1;
ps.dwFlags := PSH_WIZARD97
or PSH_HEADER;
ps.hwndParent :=
Handle;
ps.hInstance := hInstance;
ps.pszCaption := '
Test';
ps.phpage := @page;
if PropertySheet(ps) = -1
then
ShowMessage(SysErrorMessage(GetLastError));
end;
Der Dialog blinkt nur kurz auf und ist dann auch schon wieder verschwunden.
Scheinbar wird die PropSheetProc niemals aufgerufen, denn wenn ich einen Haltepunkt reinsetze hält er nie an und wenn ich psp.dfnDlgProc = nil setze, verhält sich alles genauso.
Was mache ich denn falsch?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."