менно под управлением 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 ('*');