[an error occurred while processing this directive]
Человек получает информацию о мире с помощью органов чувств (зрения, слуха, обоняния, осязания, вкуса). Чтобы правильно ориентироваться, он запоми-нает полученные данные (хранит информацию). Для достижения каких-либо целей человек принимает решения (обрабатывает информацию), а в процессе общения с другими людьми - передает и принимает информацию.

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

Видимый элемент владеет прямоугольным участком экрана. Правильно сконструированный элемент обязан заполнять нужным изображением всю выделенную ему область, иначе на экране останется «мусор». Чтобы элемент мог заполнить область, он должен знать координаты закрепленного за ним участка. Эти координаты хранятся в двух полях - 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} 

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;

Модуль DOS. В модуле собраны процедуры и функции, открывающие доступ программам к средствам дисковой операционной системы MS- DOS. Модуль OVERLAY предназначен для организации оверлейных программ, которые загружаются в оперативную память отдельными частями – секциями. Два библиотечных модуля TURBO3 и GRAPHS введены для совместимости с ранней версией 3.0 системы Турбо Паскаль.
[an error occurred while processing this directive]