Реферат: Turbo Vision
рисовать объект на экране).В ряде случаев непосредственное изменение
параметров просто недопустимо.Практически для всех параметров объектов
в Turbo Vision указано, допустимо ли его непосредственно изменять (за-
писывать).К сожалению, принцип объектного программирования, требующий
изменения параметров только с помощью того или иного метода, в полной
мере в Turbo Vision не реализован, и приходится в простейших случаях
параметры изменять непосредственно либо писать свои дополнительные ме-
тоды.
Любой отображаемый объект может быть размещен на кране в прямоу-
гольной области, которая задается координатами левого верхнего и пра-
вого нижнего углов.В Turbo Vision координаты задают линии раздела меж-
ду знакоместами, и при этом нумерация по горизонтали и вертикали начи-
нается с нуля (координаты 0,0 - левый верхний угол экрана).Координаты
могут быть абсолютными, отсчитываемыми относительно левого верхнего
угла крана, и относительными, отсчитываемыми от левого верхнего угла
соответствующего окна (так называемого владельца данного отображаемого
объекта).
Для задания координат точки на кране и координат прямоугольной
области используются два объекта - tPoint, содержащий две координаты
точки - X и Y :
type tPoint = object
X, Y : Integer;
end;
и tRect, определяющий левый верхний и правый нижний углы прямоугольной
области.Объект tRect не только содержит соответствующие координаты, но
также обладает методами, позволяющими задавать, изменять, получать эти
координаты и выполнять над ними ряд других операций.
Объект tView
Предком отображаемых объектов является объект tView.Несмотря на
то, что этот объект абстрактный, т.е. нельзя создать конкретный обра-
зец этого типа, он имеет важное значение, т.к. задает общие свойства
всех отображаемых элементов и определяет виртуальные методы, которые
затем переопределяются для конкретных отображаемых объектов.
У объекта tView задаются следующие параметры :
Расположение и размеры объекта.Расположение объекта tView задает-
ся координатами его левого верхнего угла в поле его владельца - пара-
метр Origin, а размеры - параметром Size, задающим его ширину и высо-
ту.Непосредственно изменять эти параметры в программе не следует.Для
их задания нужно использовать методы Locate (одновременное задание
всех координат объекта) :
procedure tView.Locate(var Bounds: tRect);
где Bounds - область, выделяемая под объект в координатах его владель-
ца;
MoveTo (перемещение объекта в поле его владельца без изменения разме-
ров):
procedure tView.MoveTo(X, Y: Integer);
где X, Y - координаты левого верхнего угла объекта в поле его владель-
ца,
и GrowTo (изменение размеров объекта):
procedure tView.GrowTo(X, Y: Integer);
где X, Y - горизонтальный и вертикальный размеры объекта.
При изменении размеров объекта с помощью метода GrowTo остается
на месте левый верхний угол объекта.
Координаты курсора.Ряд отображаемых объектов, таких, как строка
ввода текстовой информации, редакторы и т.д., могут иметь видимый кур-
сор.Координаты этого курсора задаются параметром Cursor.Для объектов,
не имеющих видимого курсора, значение этого параметра безразлично.За-
дать координаты курсора можно с помощью метода SetCursor :
procedure tView.SetCursor(X, Y: Integer);
где X, Y - координаты курсора в поле объекта.
Курсор отображаемого элемента можно сделать видимым и невидимым
(параметр sfCursorVis флагов состояния), а также изменять его размеры
(параметр sfCursorIns).
Флаги свойств.Параметр Options размером в одно 16-разрядное слово
задает ряд свойств отображаемого объекта.Назначение битов этого слова
следующее (в круглых скобках приведены константы, соответствующие еди-
нице в указанном бите) :
0-й бит (ofSelectable) - возможность активизации (выделения) данного
объекта в его владельце либо с помощью мыши,
либо с помощью клавиши табуляции.Это свойство
используется у любого объекта, и обычно флаг
задается равным единице.
1-ый бит (ofTopSelect) - возможность размещения объекта при его акти-
визации (выделении) сверху всех остальных
объектов конкретной группы.Это свойство ис-
пользуется у окон (тип tWindow) и их потомков
- диалоговых окон, стандартных диалоговых
окон и т.д.
2-ой бит (ofFirstClick) - возможность использования первого нажатия
клавиши не только для выделения объекта (бит
0), но и для выполнения действий, которые
активизируются данным объектом.Свойство ис-
пользуется практически у всех отображаемых
объектов.
3-ий бит (ofFramed) - наличие рамки вокруг отображаемого объекта.Это
свойство используется для подэлементов окон.Не
следует этот флаг путать с наличием рамки окна
(tWindow) и его потомков.
4-ый бит (ofPreProcess) - опережающая реакция на событие.Задание флага
приводит к изменению стандартной последова-
тельности реакции отображаемых элементов
группы на событие.Свойство может использо-
ваться у любого элемента по мере необходимос-
ти.
5-ый бит (ofPostProcess) - запаздывающая реакция на событие.Аналогично
предыдущему флагу, но с другими последстви-
ями его использования.
6-ой бит (ofBuffered) - наличие КЭШ-буфера у отображаемого объекта,
когда образ отображаемого объекта не создается
каждый раз заново при его прорисовке на экране,
а хранится в специальном КЭШ-буфере.Флаг важен
для сложных составных объектов типа окна и его
потомков.
7-ой бит (ofTileable) - расположение отображаемых объектов встык или
каскадно (с наложением).Этот флаг использу-
ется только у окон и их потомков.
8-ой бит (ofCenterX) - центрирование объекта по горизонтали.При зада-
нии этого флага объект при его первоначальной
прорисовке центрируется относительно верти-
кальной оси его владельца.Флаг может использо-
ваться у элементов, входящих в группу элемен-
тов.
9-ый бит (ofCenterY) - центрирование объекта по вертикали.Аналогично
предыдущему флагу, но только объект центриру-
ется относительно горизонтальной оси его вла-
дельца.
10-ый бит (ofValidate) - задается проверка правильности введенной в
объект информации при выходе из этого объек-
та (активизации другого объекта).Флаг ис-
пользуется только со строками ввода.
11-ый бит (ofVersion20) - используется Turbo Vision 2.0.Ряд объектов
(как, например, строка ввода) имеют принци-
пиальные отличия в зависимости от версии
Turbo Vision.Версия 2.0 имеет дополнительные
возможности по сравнению с версией 1.0.
12-ый бит (ofVersion10) - используется Turbo Vision 1.0.
Остальные биты слова флагов свойств не используются.Для задания
флагов свойств можно использовать константу ofCentred=$0300 (одновре-
менное центрирование по горизонтали и вертикали), с помощью которой
можно одновременно установить 8 и 9 биты параметра Options.Имеется
константа ofVersion=$3000, позволяющая выделить биты, связанные с вер-
сией Turbo Vision.
Флаги перемещения.Параметр DragMode размером в один байт задает
характеристики отображаемого объекта при его перемещении :
0-й бит (dmDragMove) - разрешение перемещения объекта либо с помощью
мыши, либо с помощью клавиш направления. Используется у тех
объектов, которые по тем или иным причинам могут перемещаться
в поле своего владельца, например у окон и их потомков.
1-й бит (dmDragGrow) - разрешение изменения размеров объекта либо с
помощью мыши, либо с помощью клавиш направления.Используется
у окон и их потомков.
4-й бит (dmLimitLoX) - запрещение левой стороне отображаемого объекта
выходить за заданные границы.В качестве таких границ часто
выступают размеры владельца данного объекта (например, разме-
ры рабочего поля, в котором размещены окна).
5-й бит (dmLimitLoY) - аналогично 4 биту, но запрещение верхней сторо-
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13