менно под управлением Windows могут выполняться несколько программ и, следовательно, существует целый набор окон, Windows безошибочно распознает тип события и направляет сообщение о нем нужной оконной функции.

В момент загрузки программа создает так называемое главное окно, которое служит своеобразным «пропуском» в мир Windows: целочисленный идентификатор окна — дескриптор — используется как параметр обращения к большинству API— функций и, следовательно, не создав окна, программа не сможет воспользоваться возможностями Windows. Для создания окна программа должна подготовить и указать Windows оконную функцию. Если окно создано правильно, Windows возвращает программе дескриптор окна и создает очередь сообщений, которые будут передаваться в оконную функцию. Первоначально очередь пуста, но как только пользователь начнет работать с программой, эта очередь будет заполняться сообщениями Windows о действиях пользователя. Если пользователь закрывает главное окно, Windows прекращает работу программы и выгружает ее из памяти.

10.2. МОДУЛЬ WINCRT

В состав ВР входит модуль WinCRT, с помощью которого создается полноценное Windows—окно с собственной оконной функцией. Все действия по созданию окна выполняются в установочной секции модуля и, следовательно, скрыты от программиста. Таким образом, многие MS-DOS—программы можно практически без переделки перенести в среду Windows: для этого достаточно указать ссылку на WinCRT в предложении Uses. Например, следующая программа выводит график и таблицу значений функции у = sin(x):

Program WinCRT_Demo;

Uses WinCRT;

var

k: Integer; {Параметр цикла} const

NX = 50; {Количество точек по горизонтали} dX = 2*pi/NX; {Шаг табуляции} NY = 10; {Амплитуда графика} begin

ScreenSize.X := 80; {Ширина виртуального экрана} ScreenSize.Y := 60; {Длина экрана} AutoTracking := False;{Запрещаем прокрутку} for k := 0 to NX do begin

{Выводим ось абсцисс:}

GotoXY(k+l,NY) ;

Write(' -') ;

{Выводим точки графика:}

GotoXY(k+1,Round(NY*(1+sin(dX*k))));

Write ('*');