Иллюстрированный самоучитель по Tirbo Pascal



Территориальность


Видимый элемент владеет прямоугольным участком экрана. Правильно сконструированный элемент обязан заполнять нужным изображением всю выделенную ему область, иначе на экране останется «мусор». Чтобы элемент мог заполнить область, он должен знать координаты закрепленного за ним участка. Эти координаты хранятся в двух полях - Origin и Size, каждое из которых имеет тип TPoint. Поле Origin задает координаты левого верхнего угла области, выделенной элементу, поле Size - размер этой области, т.е. показывает на каком расстоянии от Origin находится его правый нижний угол. Минимальный по размеру видимый элемент, который может хоть что-то вывести на экран, имеет Size.X = Size.Y=1.

Объект TPoint крайне прост, он только определяет координаты некоторой точки на экране и не имеет никаких методов:

type

TPoint = object

X: Integer; {Горизонтальная координата}

Y: Integer; {Вертикальная координата} 

end;

Координаты в Turbo Vision имеют две особенности. Во-первых, они указывают позицию на экране, начиная с 0, а не с 1, как это принято в стандартных для Турбо Паскаля подпрограммах работы с текстовым экраном (например, GotoXY из модуля CRT). Во-вторых, все координаты задаются относительно границ той группы видимых элементов, в которой создается и используется новый элемент. В Turbo Vision любойвидимый элемент входит в состав какой-то группы, поскольку все элементы в конечном счете принадлежат программе, которая сама по себе является группой.

Для указания всех четырех координат видимого элемента и действий над ними используется тип TRect следующего вида:

type

TRect = object

A: TPoint; {Левый верхний угол }

В: TPoint; {Правый нижний угол}

Procedure Assign(XA,YA,XB,YB: Integer);

{Назначает значения параметров полям А и В}

Procedure Copy(R: Trect);

{Устанавливает все поля, равными прямоугольнику R}

Procedure Move(ADX,ADY: Integer);

{Смещает прямоугольник, добавляя ADX к А.Х, В.Х и

ADY к А. Y, B.Y}

Procedure Grow(ADX,ADY: Integer); 

{Изменяет размер, вычитая ADX из А.Х и прибавляя ADX к В.Х; вычитая ADY из A.Y и прибавляя ADY к B.Y} 




- Начало -  - Назад -  - Вперед -