Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.012 c
3-4193
AlexGreG
2002-11-01 07:48
2002.12.02
ГРУППИРОВКА


1-4503
Dmitry_mit
2002-11-20 20:01
2002.12.02
Кривая функция и var


1-4364
New_Proger
2002-11-21 22:14
2002.12.02
Нетипизированный файл


1-4416
MrSana
2002-11-22 22:26
2002.12.02
Файлы в Windows


1-4337
Cranium
2002-11-22 00:01
2002.12.02
Дочерняя форма при развертывании ....





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский