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
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 

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