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




Территориальность - часть 2


Procedure Intersect(R: TRect); 

{Изменяет положение и размер прямоугольника до области,

определенной пересечением R и текущего положения элемента} 

Procedure Union(R: Trect); 

{Изменяет прямоугольник до области, определяемой

объединением R и текущего положения элемента} 

Function Contains(P: TPoint): Boolean; 

{Возвращает TRUE, если точка принадлежит элементу} 

Function Equals(R: Trect): Boolean;

{Возвращает True, если положение и размеры прямоугольника R и элемента одинаковы} 

Function Empty: Boolean; 

{Возвращает TRUE, если элемент пустой, т.е. если его поля Size.X и Size,У. равны нулю} 

end;

С помощью полей Owner^.Origin и Owner^.size видимый элемент может определить положение и размер своего владельца, т.е. той группы, в состав которой он входит, а с помощью метода

Procedure GetExtend(var R: Trect)

получить в R свои текущие координаты (напомню, что положение и размеры большинства видимых элементов могут меняться в ходе работы программы). Обычно обращение к GetExtend используется перед тем, как задать максимально возможные координаты вновь создаваемого видимого элемента. Например, если внутри окна TWindow нужно поместить скроллер так, чтобы он занял всю внутреннюю часть окна, можно использовать такой фрагмент:

type

MyWindow = object (TWindow)

.....

Constructor Init;

.....

end ;

Constructor MyWindow.Init; 

var

S: PScroller{Указатель на скроллер}

R: TRect;

HS, VS: PScrollBar;{Указатели на полосы скроллера}

.....

begin

.....

GetExtend(R) ;{Получаем координаты окна}

R.Grow(-1, -1) ;{Уменьшаем их на 1}

S := New(PScroller,

Init(S, HS, VS)){Создаем скроллер} 

Insert(S);{Помещаем скроллер в окно}

.....

end;




Содержание  Назад  Вперед