
12.01.2012, 21:35
|
 |
.
|
|
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
|
|
Цитата:
Сообщение от Kaktuz
Вообщем как я понял WinAPI это использование (ресурсов) компонентов Windows. Таким образом мы не создаем собственную форму, а используем формы Windows что позволяет с экономить размер программы. Но вот тогда получается будет больше возни с кодами, каждый объект нужно вручную создавать, прописывать его свойства и т.д. и т.п.
И все же я не понял как толком создать форму, просто чистую форму для обзора. Может подскажете 
|
1. Дельфи так же использует контролы Windows.
2. Возни с кодом не просто больше, а намного больше.
3. Пример пустой формы:
Код:
Program Test;
uses
Windows, Messages;
const
szAppName = 'test';
szCaptionName = 'test';
var
Window : HWND;
Msg : TMsg;
WndClass : TWndClassEX;
//---------------------------------------------------------
function MainProc(Wnd : HWND; Msg : Integer; wParam, lParam : Longint): Integer; stdcall;
begin
Result := 0;
case Msg of
WM_CLOSE :
begin
DestroyWindow(Wnd);
end;
WM_DESTROY :
begin
PostQuitMessage(0);
Exit;
end;
end;
Result := DefWindowProc(Wnd, Msg, wParam, lParam);
end;
//---------------------------------------------------------
begin
FillChar(WndClass, SizeOf(TWndClassEx), 0);
WndClass.cbSize := SizeOf(TWndClassEx);
WndClass.style := CS_HREDRAW or CS_VREDRAW;
WndClass.lpfnWndProc := @MainProc;
WndClass.cbClsExtra := 0;
WndClass.cbWndExtra := 0;
WndClass.hInstance := hInstance;
WndClass.hCursor := LoadCursor(0, IDC_ARROW);
WndClass.hbrBackGround := GetSysColorBrush(COLOR_BTNFACE);
WndClass.lpszClassName := szAppName;
if RegisterClassEx(WndClass) = 0 then
Halt(255);
Window := CreateWindowEx(0, szAppName, szCaptionName,
WS_OVERLAPPEDWINDOW,
0, 0, 800, 600, 0, 0, hInstance, NIL);
ShowWindow(Window, SW_SHOW);
while(GetMessage(Msg, 0, 0, 0)) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
Halt(Msg.wParam);
end.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
|