Delphi

Xakep, номер #040, стр. 040-072-3


Исходники примера, как всегда, можно скачать с моего сайта www.cydsoft.com/vr-online после выхода этого номера в свет.

P.S. У меня к тебе просьба, на сто баксов :). Не пиши мне большие письма. После появления рубрики кодинг меня каждый день валят вопросами. Я не в состоянии всем рассказывать то, о чем пишут книги. Я могу что-то подсказать, где-то помочь, но не больше. А просьбы типа помоги написать прогу вообще нереальны. Я отвечаю только на те вопросы, где ответ займет несколько строчек. Целые лекции по мылу я разводить не могу. Я бы с удовольствием помог всем, но это НЕВОЗМОЖНО. Вас слишком много, а я один :(((. Поэтому лучше разбей свой вопрос на несколько маленьких и спрашивай постепенно, а не все сразу.

Листинг

uses

windows, messages, sysutils;

{$R *.RES}

var

Instance: HWnd;

WindowClass: TWndClass;

Handle: HWnd;

msg: TMsg;

//Процедура выхода из проги

procedure DoExit;

begin

Halt;

end;

//Функция обработки событий Windows

function WindowProc (Hwn,msg,wpr,lpr: longint): longint; stdcall;

begin

result:=defwindowproc(hwn,msg,wpr,lpr);

if msg=wm_destroy then

DoExit;

if msg=wm_KeyDown then

if wpr=VK_ESCAPE then

DoExit;

end;

//Отсюда начинается выполнение проги

begin

//Получаем описатель модуля

instance :=GetModuleHandle(nil);

//Заполняю структуру WindowClass

WindowClass.style:=CS_HRedraw or CS_VRedraw;

WindowClass.Lpfnwndproc:=@windowproc;

WindowClass.Hinstance:=Instance;

WindowClass.HbrBackground:= color_btnface;

WindowClass.LpszClassName:='DX';

WindowClass.Hcursor:=LoadCursor(0,IDC_ARROW);

//Регистрирую новый класс

RegisterClass (WindowClass);

//Создаю окно

Handle:=CreateWindowEx (0,'DX','',WS_POPUP, 1,1,

GetSystemMetrics (SM_CXSCREEN),

GetSystemMetrics (SM_CYSCREEN),0,0,instance, nil);

UpdateWindow (Handle);

//Здесь можно производить инициализацию.

//Цикл обработки сообщений

while (GetMessage(msg, 0, 0, 0)) do

begin

translatemessage(msg);

dispatchmessage (msg);

end;

end.

Назад на стр. 040-072-2  Содержание