Turbo Vision

изменять этот флаг не следует.


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-поря-

док, и среди них можно выделить первый, последний и промежуточные эле-

менты.


┌───────────────────────────────────┐

│ Основной элемент (владелец) │

└────────────────┬──────────────────┘

┌────────────────┴──────────────────┐

│ Последний элемент (Last) │───────────────┐

└────────────────┬──────────────────┘ │

│ <───── Insert │

┌────────────────┴──────────────────┐ │

│ Предпоследний элемент │ │

└────────────────┬──────────────────┘ │

│ │

... │

│ │

┌────────────────┴──────────────────┐ │

│ Второй элемент │ │

└────────────────┬──────────────────┘ │

│ <───── InsertBefore │

┌────────────────┴──────────────────┐ │

│ Первый элемент │ │

└────────────────┬──────────────────┘ │

│ │

│ │

└──────────────────────────────────┘


Рис. 1. Структура группы


У каждого отображаемого объекта есть поле Next, указывающее на

следующий подэлемент группы.Поле Next последнего подэлемента указывает

на предыдущий подэлемент, поле Next предыдущего подэлемента указывает

на его предыдущий подэлемент и т.д.У первого подэлемента это поле ука-

зывает на последний подэлемент группы.Таким образом, все подэлементы

группы образуют циклическую структуру.У каждого подэлемента группы по-

ле Owner (владелец) указывает на основной элемент группы.

Поля, указывающего на предыдущий подэлемент в группе у отображае-

мого объекта нет, однако у него есть метод Prev, который формирует

указатель на такой предыдущий подэлемент.Этот метод даст указатель на

первый подэлемент, если определяется предыдущий подэлемент последнего

подэлемента.


Оформление программы, использующей средства Turbo Vision.

Объекты tProgram И tApplication


В Turbo Vision имеются два объекта - tProgram и tApplication, на

основе которых можно создать интерактивную программу.


Объект tProgram является основой создаваемой программы и включает

общие действия, которые выполняются практически в любой интерактивной

программе.В первую очередь это обработка поступающих событий.tProgram

представляет собой отображаемый объект, занимающий все поле экрана.Он

является непосредственным потомком объекта tGroup и наследует все его

свойства.В частности, это позволяет в поле экрана разместить любые

отображаемые объекты.В свою очередь, этот объект имеет свои характер-

ные свойства, которые позволяют создать программу как нечто целое.

Инициализируется объект tProgram конструктором Init :


constructor tProgram.Init;


После инициализации устанавливаются значения парамет-

ров.ScreenWidth и ScreenHeight - параметры модуля Drivers, содержащие

размеры экрана в текстовом режиме.Параметр DeskTop (модуль App) - ука-

затель на рабочую область программы.Указатель на созданный объект

tProgram помещается в переменную Application (модуль App).

Важным методом объекта tProgram является метод Run :


procedure tProgram.Run; virtual;


представляющий собой цикл обработки событий и выполняющий, таким обра-

зом, основные действия, связанные с работой программы.


Объект tProgram позволяет разместить в поле экрана любые отобра-

жаемые объекты.Их можно помещать в поле экрана произвольным образом,

однако принята следующая система их расположения : в верхней строке

экрана размещается строка меню (тип tMenuBar или его потомок), в ниж-

ней части экрана размещается строка состояния (тип tStatusLine или его

потомок), остальная часть экрана отдается под рабочую область (тип

DeskTop или его потомок).Эти три объекта (tMenuBar, tStatusLine и

tDeskTop) также являются отображаемыми объектами, причем объект

tDeskTop является к тому же потомком объекта tGoup.


Объекты этих типов размещаются на экране автоматически при иници-

ализации программы методом Init.Для размещения меню, строки состояния

и рабочей области вызываются методы InitMenuBar, InitDeskTop и

InitStatusLine.Методы InitMenuBar и InitStatusLine переопределяются,

метод же InitDeskTop обычно не меняется (его следует переопределить,

если у программы нет меню или строки состояния, с тем, чтобы соответс-

твующим образом изменить его размеры).

Рабочая область инициализируется конструктором Init :


constructor tDeskTop.Init((var Bounds: tRect);


где Bounds - размеры рабочей области.


Объект tApplication является непосредственным потомком объекта

tProgram и наследует все его свойства.Кроме этого, он предназначен для

создания оболочки программы, включающей систему управления памятью,

видеосистему, систему обработки событий и т.д., которые могут быть

инициализированы с помощью конструктора Init этого объекта :


constructor tApplication.Init;


а ликвидированы с помощью деструктора Done :


destructor tApplication.Done; virtual;


При инициализации этого объекта его параметры принимают те же

значения, что и у его предка tProgram.

Сформированная на основе

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: