![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание окна при помощи WinAp [D5, Win95/98]
solo © (2002-01-18 01:45:00)Люди подскажите: попробовал писать в дельфи на чистом WinApi. Сделал так: Создал новый проект => Удалил форму => Написал в файле проекта код создающий главную форму. Размер приложения зашкалил за 280кБ. Как этого избежать?
solo (2002-01-18 14:13:00) [1]Народ, конечно я отключил VCL(я понимаю что они вес дают), из модулей у меня подключено только Windows и Messages. Но вот какая фишка: вчера до 3-х ночи бился, чуть голову не сломал - 284кБ. Сегодня откомпилировал тот же код - 16,5кБ. Ну правда я с утра Windows переустановил :-D .
Almaz (2002-01-18 02:49:00) [2]Примера ради, нижеследующий код будучи скомпилированным в D5 дает исполняемый файл размером 17 кбайт.
program WinAPI;
uses Windows, Messages;
function WndProc(hWnd: HWnd; uMsg: Integer; wParam: WParam; lParam: LPARAM): Integer; stdcall;
begin
case uMsg of
WM_CLOSE:
begin
PostQuitMessage(0);
Result := 0;
end else
Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
end;
end;
var
WndClass : TWndClass;
Msg: TMsg;
Wnd: HWND;
begin
FillChar(WndClass, SizeOf(WndClass), 0);
with WndClass do
begin
style := CS_VREDRAW or CS_HREDRAW;
lpfnWndProc := @WndProc;
hCursor := LoadCursor(0, IDC_ARROW);
hbrBackground := GetStockObject(WHITE_BRUSH);
lpszClassName := "MySimpleClass";
hInstance := SysInit.HInstance;
end;
if RegisterClass(WndClass) <> 0 then
begin
Wnd := CreateWindow("MySimpleClass", "My window",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, 0, 0, hInstance, nil);
if Wnd <> 0 then
begin
ShowWindow(Wnd, SW_SHOWNORMAL);
while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end;
end;
end.
Удачи.
Almaz (2002-01-18 02:25:00) [3]Из usesмодуль Forms удалить не забыли ?
Удачи.