Энциклопедия Turbo Pascal. Главы 9-11 - Окна
ОГЛАВЛЕНИЕ
Окна
Графический инструментарий позволяет вам создавать и обрабатывать одно или несколько окон. Каждое окно может быть связано со своей отдельной планетной координатной системой. Кроме того, окно может иметь заголовок и быть заключенным в границы. Две основные процедуры используются для работы с окнами: 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. Простое окно с границей и заголовком