Страница 20 из 39
Окна Графический инструментарий позволяет вам создавать и обраба- тывать одно или несколько окон. Каждое окно может быть связано со своей отдельной планетной координатной системой. Кроме того, окно может иметь заголовок и быть заключенным в границы. Две основные процедуры используются для работы с окнами: DefincWindow и SelectWindow. Они декларируются следующим образом: procedure DefineWindow(WindomNum, X1, Y1, X2, Y2: integer); procedure SelectWindow(WindomNum: integer); WindoNum - это номер окна. В процедуре DefineWindow параметры X1, Y1 определяют местоположение верхнего левого угла, а X2, Y2 - правого нижнего угла. Одним необычным аспектом процедуры DefineWindow является измерение координаты Х единицами, равными 8 пикселам. Следовательно, предложение Defin_Window(1, 0, 0, 10, 10); задает окно, которое имеет 10 пикселов высоты и 80 пикселов шири- ны (такой подход используется, так как все окна должны быть вы- равнены в памяти отображения на границу байта). Для связи планеты с окном необходимо придерживаться следую- щей последовательности: 1. выбрать планету; 2. выбрать окно. Для отображения сообщения в заголовке вы должны сначала связать заголовок с окном, а затем заголовок в соответствие "включено". Для реализации этого используйте процедуры DefineHeader и SetHeaderOn, которые декларируют следующим образом: procedure DefineHeader(WindowNum: integer, Msg: WrkString); procedure SetHeaderOn; Вызов DrawBorder помещает границу вокруг активного окна. Данная процедура не имеет параметров. Следующая программа иллюстрирует правильный порядок вызова различных процедур работы с окном для того, чтобы активизировать окно с границей и заголовком. Ее вывод показан на рис.10-5. program One_Window;
{Si typedef.sys} {Si graphix.sys} {Si kernel.sys}
var i:integer;
begin InitGraphic; DefineWorld(1, 0, 0, 1000, 1000); DefineWindow(1, 20, 20, 40, 100);
DefineHeader(1, 'Заголовок'); SetHeaderOn; SekectWorld(1); SekectWindow(1); DrawBorder; repeat until KeyPressed; LeaveGraphic; end.
-------------------------------------------------- -----------------¬ L----------------- -----------------¬ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ L----------------- --------------------------------------------------- Рис.10-5. Простое окно с границей и заголовком
|