ВВЕДЕНИЕ.
Если Вы пишете программы, работающие в текстовом режи-
ме, которые используют высокопроизводительный, гибкий и це-
лостный интерфейс для взаимодействия с пользователем, то биб-
лиотека Turbo Vision предназначена для Вас.
Библиотека Turbo Vision является средством для разработ-
ки программ, работающих в среде DOS , реализующих новый
взгляд на проектирование программного обеспечения. Библиотека
может быть использована для создания многофункционального ин-
терфейса взаимодействия, включающего окна, диалоговые панели,
меню, поддержку манипулятора "мышь" и даже простой, настраи-
ваемый, удобный редактор.
После создания фирмой Borland нескольких программ с це-
лостным многофункциональным пользовательским интерфейсом, бы-
ла предпринята попытка заключить их возможности в многократно
используемый набор средств. Библиотека Turbo Vision была раз-
работана с использованием технологии объектно-ориентированно-
го программирования.
Turbo Vision является полной объектно-ориентированной
библиотекой классов, которая содержит компоненты пользовате-
льского интерфейса:
- многочисленные, сворачивающиеся, перекрывающиеся окна;
- поддержку "мыши";
- панели диалога;
- встроенную установку цвета;
- кнопки, полосы прокрутки, панели ввода, кнопки управле-
ния с независимой и зависимой фиксацией;
- стандартную обработку нажатий клавиш и работы манипуля-
тором "мышь";
- и многое другое!
Чтобы использовать Turbo Vision , нужно свободно владеть
объектно-ориентированим программированием (ООП) и, в частнос-
ти, С++. В приложениях, написаных с использованием TurboVisi-
on , широко используется техника ООП, в том числе наследова-
ние и полиморфизм.
ОСНОВНЫЕ ЭЛЕМЕНТЫ TURBO VISION.
Библиотека Turbo Vision представляет собой многооконную
оболочку, управляемую событиями. Она является программным
средством, содержащим только скелет программы (средства,
обеспечивающие основную структуру). С помощью свойства расши-
ряемости объектно-ориентированного программирования на языке
Turbo С++, можно наполнить этот скелет. Turbo Vision предс-
тавляет Вам класс прикладной программы, TApplication, а Вы
на его основе создайте собственный класс, например, - MyApp-
lication, для поддержки своей собственной прикладной програм-
мы. Затем Вы добавляете к нему, или заменяете в нем необходи-
мые детали, требубщиеся для решения конкретной задачи.
Подразумеваемые конструкторы и деструкторы берут на себя
все функции обслуживания: инициализацию объектов и их уничто-
жение.
При использовании Turbo Vision Вам никогда не придется
модифицировать имеющийся исходный текст. Изменения в Turbo
Vision производятся путем расширения. Класс прикладной прог-
раммы TApplication остается неизменяемым внутри библиотеки
TV.LIB. Вы будете делать только добавления к нему, создавая
новые типы классов и вносить нужные изменения путем замены
имеющихся функций на новые, которые Вы разработаете для новых
объектов.
Кроме того, Turbo Vision представляет собой иерархичес-
кую структуру, а не разобщенный набор отдельных средств. Его
можно использовать только целиком, а не по частям. Все компо-
ненты Turbo Vision архитектурно взаимосвязаны и все они взаи-
модействуют друг с другом множеством взаимосвязанными спосо-
бами. Не стоит пытаться вычленить из него, например, поддерж-
ку "мыши" - это сложне, чем создание новой системы поддержки
"мыши".
В основе философии разработки Turbo Vision лежат две
следующие рекомендации: полное использование объектно-ориен-
тированного техники и работа с комплексом библиотеки Turbo
Vision в ее основных понятиях. Это означает "игру по прави-
лам" Turbo Vision и использование ее составных типов объек-
тов так, как это в ней предусмотренно. Turbo Vision создавал-
ся для избавления пользователей от огромного объема ненужной
повторяющейся работы и предоставления проверенной основы для
разработки прикладных программ, которой можно доверять.
Элементы прикладной программы, построенной в Turbo Vision.
Прикладная программа, использующая Turbo Vision, предс-
тавляет собой взаимодействующее мнощество отбражаемых объек-
тов, событий и неотображаемых объектов.
В контексте Turbo Vision отображаемый объект - это то,
что Вы можете увидеть на экране. Поля, рамки, строкипрокрутки
и меню, - все это отображаемые объекты. Отображаемые объекты
могут объединяться и образовывать боллее сложные объекты, та-
кие как окна и панели диалога. Такие отображаемые объекты на-
зываются групповыми объектами, и функционируют вместе, как
единый отображаемый объект. Группы даже могут содержать в се-
бе другие группы, порождая цепочки отображаемых обьъектов и
подобъектов.
Событием является то, на что должна реагировать Ваша
программа. События поступают от клавиатуры, от "мыши" или из
других частей Turbo Vision . События помещаются в очередь,
затем обрабатываются в порыдке поступления обработчиком. Та-
кой обработчик имеется в классе TApplication, являющимся те-
лом Вашей прикладной прогоаммы.
Неотображаемыми называются любые объекты программы, не
являющиеся отображаемыми, т. е. непосредственно не взаимо-
действующие с экпаном. Они выполняют вычисления, осуществляют
связь с периферийными устройствами и в целом реализуют функ-
ции прикладной программы. Если неотображаемому объекту нужно
вывести какую-либо информацию на экран, то это делается с по-
мощью отбражаемого объекта. Эта концепция является очень важ-
ной для поддержания строгого порядка в прикладных программах
Turbo Vision : с экраном взаимодействут только отображаемые
объекты.
Общие подходы.
Поскольку Turbo Vision разработан для реализации стан-
дартизированного, рационального подхода к построению интер-
фейса, то Ваши прикладные программы обретут похощий вид.
Этот вид идентичен виду интерфейса различных интегрированных
сред фирмы Borland и базируется на многолетнем опыте и про-
верках их использования. Наличие общего и доступного для по-
нимания подхода к интерфейсу прикладной программы является
большим преимуществом для Вас и Ваших пользователей: несмот-
ря на любую сложность и "закрытость" задач Вашей программы,
способ работы с ней будет всегда Вам знаком и процесс работы
с ней легок и прост.
Рабочая область - это заштрихованный фон, на котором
отображаются объекты прикладной программы. Как и все элементы
Turbo Vision, рабочая область является объектом. Объектами
являются также линейное меню в верхней части экрана и строка
состояния в нижней части. Команды в строковом меню соответст-
вуют меню, которые "раскрываются" вниз (вертикальные меню) с
помощью "мыши" или нажатием соответствующих управляющих кла-
виш.
Связь программы с пользователями обычно осуществляется
через окно или несколько окон или панели диалога, которые
отбражаются в рабачей области на экране и исчезают в соот-
ветствии с командами от "мыши" или с клавиатуры. Turbo Visi-
on располагает большим ассртиментом алгоритмов работы с окна-
ми по вводу и отображению информации на экране. Внутренние
поля можно сделать прокручиваемыми, и тогда они будут слу-
жить "воротами" в более крупные изображения данных, такие
как файлы документов. Прокрутка окна по данным осуществляет-
ся перемещением бегунка строки-прокрутки в нижней части экра-
на, в его правой части или в обеих этих частях. Бегунок стро-
ки прокрутки указывает положение окна относительно совокуп-
ности изображаемых на экране данных.
Диалоговые окна часто содержат кнопки, которые реализо-
ваны как выделенные цветом слова, которые выбирают с помощью
"мыши" (или с помощью клавиш "табуляция" и "пробел"). В ответ
на нажатие, "кнопки" вдавливаются (как настоящие кнопки) и
могут реализовывать передачу команд прикладной программе.
При изучении Turbo Vision следует иметь в виду: суть
программировария с использованием Turbo Vision заключается в
разработке требуемого вида интерфейса и его обработки ко-
манд. Turbo Vision - "скелет" программы - позаботится о пере-
даче команд нужным частям Вашей программы. Вам же останется
лишь определить, что конкретно должно быть сделано после на-
жатия клавиши на клавиатуре, кнопки "мыши" или выбора коман-
ды меню. Таким образом "мясом" Вашей программы является та
ее часть, которая выполняет функциональную обработку принима-
емых от пользователей команд - и эта "мясная" часть содержит-
ся в создаваемых отображаемых объектах.
Структура программы.
Каким же образом реализуется выполнение программы? Как
правило, большая часть программы унаследуется из определенных
ранее объектов в Turbo Vision . Причем унаследуется настолько
значительная часть программы, что принципы ее реализации мо-
гут показаться таинственными. Пошаговое выполнение программы
с помощью интегрированого отладчика не дост полной картины,
т. к. Turbo Vision функционирует в виде оттранслированой биб-
лиотеки.
Т. к. программы, написанные с использованием Turbo Visi-
on , управляются событиями, их структура несколько отличает-
ся от обычных программ. Особенностью программ, управляемых
событиями, является отделение структур управления, которые
выполняют чтение и обработку входных данных, от процедур и
функций, которые воздействуют на эти входные данные.
Обычные программы, как правило, содержат много отдельных
программных блоков, каждый из которых предусматривает получе-
ние входных данных, затем определяет, какой части программы
они адресованы и выполняют вызов соответствующего фрагмента
для обработки этих данных, а затем повторяет все эти опера-
ции. Кроме того, фрагмент, завершающий обработку входных дан-
ных, должен получить информацию о месте передачи управления
для следующего этапа ввода.
Программы, управляемые событиями, наоборот, имеют цент-
рализованный механизм диспетчеризации событий. Таким образом,
большая часть программы не заботится о выборке входных данных
и, поэтому, их использование не будет составлять большой
проблемы. Это имеет большое значение для отладки программ,
т. к. Вы должны изменить всю стратегию отладки, устанавливая
контрольные точки в функциях обработки событий для проверки
диспетчеризации сообщений; в фрагментах программы, реагирую-
щих на происходящие события, чтобы проверить правильность их
функционирования.
Деструктор прикладной программы.
Когда программа завершается отображаемые объекты уничто-
жаются путем автоматических вызовов деструкторов базовых
классов в порядке, обратном тому, который использовался при
вызове конструкторов. Наконец, отключается обработчик ошибок
и драйверы Turbo Vision. В целом, от Вас не требуется специ-
ального завершения работы с объектами Turbo Vision.