Реферат: Turbo Vision
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 биту, но запрещение верхней сторо-
не отображаемого объекта выходить за заданные границы.
6-й бит (dmLimitHiX) - аналогично 4 биту, но запрещение правой стороне
отображаемого объекта выходить за заданные границы.
7-й бит (dmLimitHiY) - аналогично 4 биту, но запрещение нижней стороне
отображаемого объекта выходить за заданные границы.
Остальные биты параметра DragMode не используются.Для одновремен-
ного задания ограничений на перемещение во всех направлениях можно ис-
пользовать константу dmLimitAll=$FO, устанавливающую в единицу биты с
4 по 7.
Флаги изменения размеров.Параметр GrowMode размером в один байт
задает свойства отображаемого объекта при попытке изменения размеров
его владельца с помощью мыши или клавиш направления.
0-й бит (gfGrowLoX) - левая сторона отображаемого объекта остается на
одном и том же расстоянии от правой стороны его владельца при
изменении размеров владельца.
1-й бит (gfGrowLoY) - верхняя сторона отображаемого объекта остается
на одном и том же расстоянии от правой стороны его владельца
при изменении размеров владельца.
2-й бит (gfGrowHiX) - правая сторона отображаемого объекта остается на
одном и том же расстоянии от правой стороны его владельца при
изменении размеров владельца.
3-й бит (gfGrowHiY) - нижняя сторона отображаемого объекта остается на
одном и том же расстоянии от нижней стороны его владельца при
изменении размеров владельца.
4-й бит (gfGrowRel) - отображаемый объект изменяет свои размеры про-
порционально размерам владельца.Такой режим может потребовать-
ся при отображении окна в случае изменения режима адаптера с
25 строк на 43/50 строк и наоборот.
Остальные биты параметра GrowMode не используются Для одновремен-
ной фиксации сторон отображаемого объекта относительно размеров его
владельца можно использовать константу gfGrowAll=$OF, устанавливающую
в единицу биты с 0 по 3.
Флаги обработки событий.Параметр EventMask размером в одно слово
определяет, какие события может обрабатывать данный отображаемый объ-
ект.
Флаги состояния.Параметр State размером в одно слово определяет
текущее состояние данного отображаемого объекта.Как правило, изменение
этого параметра происходит автоматически в процессе выполнения прог-
раммы (например, выделенное состояние объекта), и не следует без осо-
бых причин менять его в программе.Если же все-таки потребуется произ-
вести те или иные изменения, их необходимо производить с помощью соот-
ветствующих методов, специально для этого предназначенных.
Отдельные биты параметра имеют следующее значение :
0-й бит (sfVisibl) - объект может быть видим в поле своего владель-
ца.Если этот флаг установлен (такое состояние задается авто-
матически при создании объекта), объект будет видим полностью
или частично, если только он не закрывается другими отобража-
емыми объектами, а его владелец сам виден на кране.Для зада-
ния этого флага используется метод Show :
procedure tView.Show;
Для сброса - метод Hide :
procedure tView.Hide;
Чтобы определить, виден ли на самом деле объект, можно вос-
пользоваться методом Exposed :
function tView.Exposed: Boolean;
где результат - True, если какая-либо часть объекта видна на
экране.
1-й бит (sfCursorVis) - курсор объекта видим в поле объекта.У некото-
рых отображаемых объектов курсор задается видимым (например, у
строки ввода), у других - невидимым (например, у статическо-
го текста).Чтобы изменить заданное состояние и сделать курсор
видимым, следует воспользоваться методом ShowCursor :
procedure tView.ShowCursor;
чтобы сделать его невидимым, используется метод HideCursor :
procedure tView.HideCursor;
2-й бит (sfCursorIns) - увеличенный размер курсора.Для задания курсора
увеличенного размера воспользуемся методом BlockCursor :
procedure tView.BlockCursor;
для задания нормального размера курсора (такой размер задается
автоматически при создании объекта) используется метод
NormalCursor :
procedure tView.NormalCursor;
3-й бит (sfShadow) - объект имеет тень.При создании одних объектов
(например, окон) задается тень, у других объектов (например,
списков) тень не задается.Если требуется изменить заданное
состояние этого флага, следует воспользоваться универсальным
методом SetState :
procedure tView.SetState(AState: Word; Enable: Boolean);virtual;
где AState - флаг, который следует изменитьЖ
Enable=True, если флаг следует установить, и False, если
сбросить.
С помощью этого метода можно изменить любые флаги состояния,
но при каждом обращении к нему можно изменить только один
флаг.
4-й бит (sfActiv) - объект является либо активным окном ( окном, с ко-
торым происходит в настоящее время работа в программе), или
подэлементом активного окна.Как правило, этот флаг автомати-
чески меняет свое значение в процессе работы программы и изме-
нять его в программе практически не требуется.
5-й бит (sfSelected) - объект является выделенным в группе.В каждой
группе может быть только один выделенный объект.Как и предыду-
щий флаг, состояние этого флага изменяется автоматически в
процессе работы программы, и обычно не возникает необходимости
принудительного изменения его состояния (изменить его также
можно с помощью метода SetState).
6-й бит (sfFocused) - объект является сфокусированным, т.е.является
выделенным в группе, и все его владельцы также являются выде-
ленными.Сфокусированный объект - то тот отображаемый объект,
с которым в настоящее время происходит работа (например,
конкретный редактор текста, если на экране открыто несколько
редакторов).
7-й бит (sfDragging) - объект находится в режиме перемещения или изме-
нения своих размеров либо с помощью клавиш направления, либо с
помощью мыши.Обычно этот флаг используется у окон и устанавли-
вается у окна при переходе его в такой режим, а сбрасывается
при выходе из этого режима.Принудительное изменение флага воз-
можно с помощью метода SetState.
8-й бит (sfDisabled) - объект является "запрещенным", т.е. не реагиру-
ющим ни на какие воздействия.Задать этот флаг можно также с
помощью метода SetState.
9-й бит (sfModal) - объект является модальным.Этот флаг характерен для
окон и устанавливается, если окно находится в модальном режиме
(использование метода ExecView или ExecuteDialog).Принудительно
изменять этот флаг не следует.
10-й бит (sfExposed) - объект имеет в качестве окончательного владель-
ца объект tApplication, т.е. имеет возможность отражаться
на экране (не путать с флагом ofVisible).Принудительно изме-
нять флаг не следует.
Остальные биты параметра State не используются.
Контекстная помощь.Этот параметр (HelpCtx) представляет собой
число типа Word, который задает значение параметра контекстной помощи
в случае, если отображаемый объект является сфокусированным.Этот пара-
метр используется в справочной системе и в системе строк состояния.Ес-
ли контекстная помощь не нужна, этот параметр следует задать равным
нулю (константа hcNoContex).Это же значение принимает параметр и при
создании объекта.
Следующий отображаемый элемент.Этот параметр (Next) содержит ука-
затель на следующий объект в группе, в которую входит данный объ-
ект.Параметр устанавливается автоматически при включении объекта в
группу.Принудительно менять значение этого параметра не следует.
Владелец объекта.Параметр (Owner) представляет собой указатель на
владельца объекта - группу, в которой расположен данный объект.Пара-
метр устанавливается автоматически при размещении объекта в группе -
обычно с помощью метода Insert объекта tGroup или другого метода,
включающего в себя метод Insert, и изменять его принудительно не сле-
дует.
Объект tView обладает 67 методами плюс 1 метод, унаследованный от
объекта tObject.Многие из этих методов являются виртуальными и переоп-
ределяются для потомков.Все методы можно условно разбить на несколько
групп.
К первой группе можно отнести методы, с помощью которых создается
или уничтожается объект.Здесь следует отметить два конструктора-Init,
с помощью которого инициализируется новый объект, и Load, с помощью
которого объект загружается из потока, а также деструктор Done, выпол-
няющий действия, обратные действиям конструктора Init.
Ко второй, самой многочисленной группе, можно отнести методы, с
помощью которых либо задаются, либо определяются текущие параметры
объекта (задание и получение указанных выше параметров).
К третьей группе можно отнести методы, позволяющие поместить объ-
ект в группу, отобразить его на экране, удалить из группы, удалить с
экрана.
К четвертой группе относятся методы обработки событий, наиболее
часто используемым из которых является метод HandlEvent, обрабатываю-
щий текущее событие.
Наконец, к пятой группе отнесем все остальные методы, выполняющие
разнообразные дополнительные действия (например, получение палитры
цветов для объекта, разрешение и запрещение выполнения команд и т.д.)
Группа (tGroup).Z-порядок
В общем случае отображаемый объект может иметь достаточно сложную
структуру и включать в себя другие видимые элементы в качестве своих
подэлементов.Эти подэлементы, в свою очередь, могут включать в себя
другие подэлементы и т.д.
Совокупность объединенных отображаемых объектов представляет со-
бой группу (тип tGroup) и может рассматриваться как нечто единое,
предназначенное для использования в программе.Так же как и объект
tView, объект tGroup является абстрактным объектом и не может иметь
конкретные образцы в программе, однако является родоначальником целого
ряда реальных объектов (в первую очередь различных окон) и определяет
основные свойства таких объектов как некоего целого.Сам объект tGroup
является потомком объекта tView и наследует или переопределяет его па-
раметры и методы.
Любой объект типа tGroup представляет собой основной элемент
группы (например, диалоговое окно), называемый владельцем элементов
группы, в который включено то или иное количество подэлементов (напри-
мер, различные элементы управления диалогового окна).Параметры, насле-
дуемые группой от объекта tView, относятся к основному объекту группы
- владельцу группы; отдельные подэлементы, также являющиеся потомками
объекта tView, обладают своими характеристиками, часто не совпадающими
с характеристиками их владельца.
В дополнение к параметрам tView объект tGroup имеет ряд собствен-
ных параметров, наиболее важными и часто используемыми из которых яв-
ляются два.Первый параметр Last, указывающий на последний подэлемент
группы (фактически он является первым включенным в группу подэлемен-
тов).Вторым является параметр Current, указывающий на текущий выделен-
ный подэлемент.Если группа не имеет ни одного подэлемента, эти два па-
раметра равны nil.
Основной элемент группы инициализируется конструктором Init :
constructor tGroup.Init(var Bounds: tRect);
где Bounds - размеры объекта.
Если после инициализации группа помещается в другую группу, уста-
навливаются соответствующие значения параметров Next и Owner.
Любой подэлемент группы должен быть включен в эту группу с по-
мощью метода Insert :
procedure tGroup.Insert(P: pView);
где P - размещаемый объект, или другого метода, включающего в себя ме-
тод Insert и может быть из нее исключен с помощью метода Delete :
procedure tGroup.Delete(P: pView);
где P - исключаемый объект, или какого-либо другого метода, включающе-
го в себя метод Delete.
Последовательность включения подэлементов в группу очень важна,
т.к. от нее зависит порядок работы с подэлементами.Следует начинать
расположение подэлементов с левой верхней части основного элемента и
далее идти вправо и вниз.
Включенные в группу подэлементы образуют так называемый Z-поря-