Показать сообщение отдельно
  #4  
Старый 09.09.2007, 19:57
Аватар для moo2k
moo2k moo2k вне форума
Активный
 
Регистрация: 05.12.2006
Адрес: где-то там...
Сообщения: 321
Репутация: 35
Хорошо

babekcom@yandx.ru
Лучше будет создать на WIN32 API - Вот это будет настоящим минимальным окном. Окна создаваемые в VCL - огромны. Пустая форма с кнопкой достигает аж 300 КБ. Вот пример создания окна на WIN API.
Код:
program WIN32APIWIN;
 
uses
Windows, Messages;
 
const
AppName = 'WIN API WINDOW';
 
function WindowProc(Window: HWnd; AMessage, WParam,
LParam: Longint): Longint; stdcall;
begin
WindowProc := 0;
 
case AMessage of
wm_Destroy:
begin
PostQuitMessage(0);
Exit;
end;
end;
 
WindowProc := DefWindowProc(Window, AMessage, WParam, LParam);
end;
 
{  Register  the  Window  Class:cool:   }
 
function WinRegister: Boolean;
var
WindowClass: TWndClass;
begin
With WindowClass do
begin
Style := cs_hRedraw or cs_vRedraw;
lpfnWndProc := @WindowProc;
cbClsExtra := 0;
cbWndExtra := 0;
hInstance := HInstance;
hIcon := LoadIcon(0, idi_Application);
hCursor := LoadCursor(0, idc_Arrow);
hbrBackground := HBrush(Color_Window);
lpszMenuName := nil;
lpszClassName := AppName;
end;
 
Result := RegisterClass(WindowClass) <> 0;
end;
 
{  Create  the  Window  Class  }
 
function WinCreate: HWnd;
var
hWindow: HWnd;
begin
hWindow := CreateWindow(AppName, 'Object  Pascal  Window',
ws_OverlappedWindow, cw_UseDefault, cw_UseDefault,
cw_UseDefault, cw_UseDefault, 0, 0, HInstance, nil);
if hWindow <> 0 then
begin
ShowWindow(hWindow, CmdShow);
UpdateWindow(hWindow);
end;
 
Result := hWindow;
end;
 
var
AMessage: TMsg;
hWindow: HWnd;
begin
if not WinRegister then
begin
MessageBox(0, 'Register  failed', nil, mb_Ok);
Exit;
end;
hWindow := WinCreate;
if hWindow = 0 then
begin
MessageBox(0, 'WinCreate  failed', nil, mb_Ok);
Exit;
end;
while GetMessage(AMessage, 0, 0, 0) do
begin
TranslateMessage(AMessage);
DispatchMessage(AMessage);
end;
Halt(AMessage.wParam);
end.
Надеюсь ты оставишь для меня отзыв.
Ответить с цитированием