IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> непонятки с программированием без Vcl
Dark
сообщение 16.06.2005 18:28
Сообщение #1


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

Репутация: -  3  +


Вот, попробовал по drkb32 написать прогу так как описано в drkb


program Project1;

uses Windows, Messages;

const AppName = 'WinMin';

Var  
Window : HWnd;  

 
Message : TMsg;  

WindowClass : TWndClass;



function WindowProc (Window : HWnd; Message, WParam : Word; LParam : LongInt) : LongInt; stdcall;
begin
WindowProc := 0;

case Message of  

 
wm_Destroy :begin  


PostQuitMessage (0);  

Exit;  

 
end;  

 
end; // case

WindowProc := DefWindowProc (Window, Message, WParam, LParam);  

 
end;

begin
with WindowClass do  

 
begin  


Style := cs_HRedraw or cs_VRedraw;  

lpfnWndProc := @WindowProc;  

cbClsExtra := 0;  

cbWndExtra := 0;

hInstance := 0;

hIcon := LoadIcon (0, idi_Application);  

hCursor := LoadCursor (0, idc_Arrow);  

hbrBackground := GetStockObject (White_Brush);  

lpszMenuName := '';  

lpszClassName := AppName;  

 
end;

 
If RegisterClass (WindowClass) = 0 then Halt (255);  

Window := CreateWindow(AppName,  


'Win_Min',  

ws_OverlappedWindow,  

cw_UseDefault,

cw_UseDefault,  

cw_UseDefault,  

cw_UseDefault,  

0,  

0,

HInstance,  

nil);  

 
ShowWindow (Window, CmdShow);

UpdateWindow (Window);

while GetMessage (Message, 0, 0, 0) do  

 
begin  

 
TranslateMessage (Message);  

DispatchMessage (Message);  

 
end;

 
Halt  

 
end.




он мне ругается что параметр cw_UseDefault выходит за рамки диапазона (но проект компилит) - почему?


--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 16.06.2005 19:43
Сообщение #2


Гость






Dark, вот так в Дельфи определено значение CW_USEDEFAULT:
CW_USEDEFAULT = DWORD($80000000);

А вот так - функция CreateWindow:
function CreateWindow(lpClassName: PChar; lpWindowName: PChar;
dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND;
hMenu: HMENU; hInstance: HINST; lpParam: Pointer): HWND;


Так что произойдет, если ты вызовешь функцию так:
Window := CreateWindow(AppName, 'Win_Min', ws_OverlappedWindow,
cw_UseDefault, cw_UseDefault, cw_UseDefault, cw_UseDefault,
0, 0, HInstance, nil);
?
Выход за границы диапазона (диапазон DWord больше, чем Integer), что тебе и говорил компилятор smile.gif
Что делать чтобы убрать сообщение?
Window := CreateWindow(AppName, 'Win_Min', ws_OverlappedWindow,
Integer(cw_UseDefault), Integer(cw_UseDefault),
Integer(cw_UseDefault), Integer(cw_UseDefault),
0, 0, HInstance, nil);
... rolleyes.gif
 К началу страницы 
+ Ответить 
Dark
сообщение 17.06.2005 10:28
Сообщение #3


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

Репутация: -  3  +


Спасиба, на соответствие типов у мя не было времени проверить =)


--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.06.2025 1:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"