ВВЕДЕНИЕ. Если Вы пишете программы, работающие в текстовом режи- ме, которые используют высокопроизводительный, гибкий и це- лостный интерфейс для взаимодействия с пользователем, то биб- лиотека 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 , управляются событиями, их структура несколько отличает- ся от обычных программ. Особенностью программ, управляемых событиями, является отделение структур управления, которые выполняют чтение и обработку входных данных, от процедур и функций, которые воздействуют на эти входные данные. Обычные пр