Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.02;
Скачать: CL | DM;

Вниз

CreateDialogIndirect   Найти похожие ветки 

 
Ev_genus ©   (2002-10-21 22:16) [0]

Как правильно делать диалоги. Я тут, читая хелп написал такую штуку. Где тут ошибка. При запуске процедуры выбрасывает ощибку.

type
TFOpenDialog=class
public
FileName:String;
function Execute:boolean;
end;

....

OpenFileDialog:=TFOpenDialog.Create;
OpenFileDialog.Execute;
....

function TFOpenDialog.Execute:boolean;
var
hDWnd: HWnd;

function WindowProc (Window : HWnd; Message, WParam : Word; LParam : LongInt) : LongInt; stdcall;
begin
case Message of
wm_KeyUp: SendMessage(hDWnd, wm_close, 0, 0);
else WindowProc := DefWindowProc (Window, Message, WParam, LParam);
end;
end;

var
DLGT:DLGTEMPLATE;
Message: TMsg;
begin
with DLGT do begin
style:=DS_MODALFRAME or WS_POPUP or WS_VISIBLE or WS_CAPTION or WS_SYSMENU;
dwExtendedStyle:=WS_EX_TOPMOST;
x:=100;
y:=100;
cx:=150;
cy:=50;
end;

hDWnd:=CreateDialogIndirect(HInstance, DLGT, 0, @WindowProc);

While GetMessage (Message, hDWnd, 0, 0) do begin
TranslateMessage (Message);
DispatchMessage (Message);
end;
end;


 
apay ©   (2002-10-22 10:15) [1]

1. вынеси WindowProc из TFOpenDialog.Execute
2. function WindowProc ( Window: HWnd; Message:UINT, WParam, LParam: LongInt ): LongInt; stdcall;
все таки пишешь под win32
3. вторых, DLGT.cdit кто за тебя инициализировать будет?
4. вместо SendMessage(hDWnd, wm_close, 0, 0);
используй PostMessame( hDWnd, WM_SYSCOMMAND, SC_CLOSE, 0 );
с wm_close иногда бывают заморочки



Страницы: 1 вся ветка

Текущий архив: 2002.12.02;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.014 c
6-4532
LSW
2002-10-04 22:42
2002.12.02
Как передать параметры GET методом с помощью WinInet?


1-4358
AlexeyMir
2002-11-22 10:42
2002.12.02
TListView


8-4517
diablo_al
2002-07-25 20:59
2002.12.02
TV-Tuner нужно добраться к ДУ


14-4625
PVOzerski
2002-11-12 21:24
2002.12.02
Что выбрать? (ответ нужен в течение 12 ноября!)


1-4417
ssmaxx
2002-11-23 01:21
2002.12.02
Вставка изображения в ЛЮБОЕ место файла MS Word