Turbo Vision
Turbo Vision — это объектно-ориентированная библиотека для разработки событийно-управляемых оконных программ, выполняющихся в текстовом видеорежиме дисплея и имитирующих GUI. Создана компанией Borland на основе идей, позаимствованных из библиотеки MacApp (Apple Computer). Turbo Vision была реализована как на языке Turbo Pascal, так и на C++. Borland включила Turbo Vision в свои продукты Turbo Pascal 6.0 (для Macintosh и DOS), Borland Pascal и Borland C++, причём Turbo Vision была использована самой Borland для разработки IDE этих продуктов.
В 1997 г. Borland открыла исходные тексты Turbo Vision на C++ и на их основе сторонние разработчики стали создавать свои реализации библиотеки. Исходные тексты Pascal-версии Turbo Vision 1.0 поставлялись в комплекте с Turbo Pascal 6.0, а исходники Turbo Vision 2.0 включались в Borland Pascal 7.0 и Turbo Pascal 7.0. В комплекты поставок также входили многочисленные примеры использования библиотеки различного уровня сложности. В частности, был файловый менеджер, текстовый редактор, шахматы. Шахматы можно было собрать либо с использованием Turbo Vision, либо в простом текстовом режиме, или под Win16 с использованием библиотеки OWL. На основе исходных кодов Turbo Vision энтузиастами были созданы версии Turbo Vision для различных Pascal-компиляторов (в том числе мультиплатформенных), а также версии, работающие в графическом режиме.
Основные возможности
- Поддержка работы GUI в текстовом режиме
- Мультиплатформенность (если рассматривать все реализации).
- Диалоговые окна.
- Многократные перекрывающиеся окна с изменяемыми размерами.
- Стандартная обработка клавиш и нажатий мыши.
- Кнопки, полосы скроллинга, окна ввода, зависимые и независимые кнопки.
- Выпадающие меню.
- Поддержка мышки.
- Встроенная установку цвета.
- Реализация на базе ООП даёт возможность расширения через механизм «наследования».
В библиотеке активно используется указатели и динамические переменные, так как почти все экземпляры объектов Turbo Vision динамически распределяются в «куче».
Недостатки
Основным недостатком Turbo Vision можно считать достаточно высокую (для целевой платформы) потребность в оперативной памяти. На типовом для времени выхода библиотеки компьютере с процессором 8086 c 1 Мб ОЗУ под управлением ОС DOS подключение к проекту Turbo Vision часто приводило к необходимости использования оверлейной структуры программы (динамической загрузки кода по частям во время исполнения). Во многом это связано с тем, что в открытой версии, поставлявшейся со средами программирования Borland, библиотеки были написаны на ЯВУ с использованием средств ООП, что само по себе приводило к большому расходу оперативной памяти. При этом в самой Borland IDE, по утверждениям исследовавших код хакеров, использовался ассемблерно-оптимизированный вариант, гораздо более экономный по объёму кода и затратам памяти.
Оригинальный Turbo Vision страдал от отсутствия поддержки Unicode, что сильно ограничивало возможности интернационализации приложений. На октябрь 2020 существует версия Turbo Vision для языка C++ с поддержкой UTF-8[1]. Существует аналогичное решение и для Free Pascal[2].
Turbo Vision от Borland (C++ и Turbo Pascal)
Начиная с 6-й версии в поставку TP/BP включалась объектная библиотека Turbo Vision, представляющая собой полноценную инфраструктуру (англ. framework) для создания оконных приложений, работающих в текстовом режиме. В частности, интерфейс самой среды разработки TP/BP был реализован средствами этой библиотеки. Turbo Vision включала в себя объекты для работы с коллекциями, потоками данных, ресурсами, панелями, меню, кнопками и радиокнопками, строками ввода, окнами, обработкой команд. Оконная система использовала событийный механизм, предлагала достаточно богатый набор интерфейсных элементов, диалоговые окна, механизм сохранения пользовательских настроек. Turbo Vision можно было рассматривать и как демонстрацию обширных возможностей Turbo Pascal, и как мощную основу для создания собственных приложений. Библиотека поставлялась с исходными текстами.
В 7-й версии Turbo Pascal использовалась вторая версия Turbo Vision. Был добавлен объект оконного редактора, фильтры ввода.
Версия библиотеки Turbo Vision на языке C++, полностью аналогичной версии на Turbo Pascal, также входила в поставку Borland C++.
Реализации сторонних разработчиков
На языке Pascal:
- Free Vision (для Free Pascal)
- Для Virtual Pascal (32-битная; под Windows, OS/2, Linux)
- Для TMT Pascal
На языке C++:
- Для Watcom C++/Open Watcom C++
- TVision port to the GNU compiler (под DOS, FreeBSD, Linux, QNX, Solaris и Win32)
- Sergio Sigala’s TVision (под Linux и FreeBSD)
- Unicode (UTF-8) версия для C++17[1]
Графические версии:
Известные программы, написанные с использованием Turbo Vision
Литература
- Фаронов В. В. Turbo Pascal. Наиболее полное руководство, BHV-Санкт-Петербург,2007, ISBN 5-94157-295-6, CD
Ссылки
Примечания
- magiblot. magiblot/tvision. — 2020-10-30.
- 0021373: Free Vision for linux platform does not properly display the Russian language. - Free Pascal/Lazarus Bug Tracker . bugs.freepascal.org. Дата обращения: 30 октября 2020.