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 этих продуктов.
Turbo Vision включала в себя объекты для работы с коллекциями, потоками данных, ресурсами, панелями, меню, кнопками и радиокнопками, строками ввода, окнами, обработкой команд. Оконная система использовала событийный механизм, предлагала набор интерфейсных элементов, диалоговые окна, механизм сохранения пользовательских настроек.
В 1997 г. Borland открыла исходные тексты Turbo Vision на C++ на условиях общественного достояния. Версии же Turbo Vision из дистрибутивов Borland/Turbo Pascal никогда не выпускались под свободной лицензией, поэтому проект Free Pascal воссоздал свою собственную версию, Free Vision, путем обратного портирования в текстовый режим графического клона, созданного Леоном де Буром на основе свободной C++ версии[1].
Исходные тексты Pascal-версии Turbo Vision 1.0 поставлялись в комплекте с Turbo Pascal 6.0, а исходники Turbo Vision 2.0 включались в Borland Pascal 7.0 и Turbo Pascal 7.0. В комплекты поставок также входили многочисленные примеры использования библиотеки различного уровня сложности: файловый менеджер, текстовый редактор, шахматы.
Основные возможности
- Поддержка работы GUI в текстовом режиме
- Мультиплатформенность (если рассматривать все реализации).
- Диалоговые окна.
- Многократные перекрывающиеся окна с изменяемыми размерами.
- Стандартная обработка клавиш и нажатий мыши.
- Кнопки, полосы скроллинга, окна ввода, зависимые и независимые кнопки.
- Выпадающие меню.
- Поддержка мышки.
- Встроенная установка цвета.
- Реализация на базе ООП даёт возможность расширения через механизм «наследования».
В библиотеке активно используется указатели и динамические переменные, так как почти все экземпляры объектов Turbo Vision динамически распределяются в «куче».
Недостатки
Основным недостатком Turbo Vision можно считать достаточно высокую (для целевой платформы) потребность в оперативной памяти. На типовом для времени выхода библиотеки компьютере с процессором 8086 c 1 Мб ОЗУ под управлением ОС DOS подключение к проекту Turbo Vision часто приводило к необходимости использования оверлейной структуры программы (динамической загрузки кода по частям во время исполнения). Во многом это связано с тем, что в открытой версии, поставлявшейся со средами программирования Borland, библиотеки были написаны с использованием средств ООП, что само по себе приводило к большому расходу оперативной памяти. При этом в самой Borland IDE, по утверждениям исследовавших код хакеров, использовался ассемблерно-оптимизированный вариант, гораздо более экономный по объёму кода и затратам памяти.
Оригинальный Turbo Vision страдал от отсутствия поддержки Unicode, что сильно ограничивало возможности интернационализации приложений. На октябрь 2020 существуют Unicode-версии для C++[2] и Free Pascal[3][4].
Реализации сторонних разработчиков
На языке Pascal:
- Free Vision (для Free Pascal 3.1.1+, с февраля 2022 поддерживается Unicode[3][4])
- Для Virtual Pascal (32-битная; под Windows, OS/2, Linux)[5]
- Для TMT Pascal[6][7]
На языке C++:
- TVision port to the GNU compiler (DOS, FreeBSD, Linux, QNX, Solaris и Win32)[8]
- TVision авторства Sergio Sigala (Linux и FreeBSD)[9]
- Turbo Vision авторства magiblot с поддержкой Unicode на C++17 (DOS, Linux, Windows)[2]
Графические версии:
Известные программы, написанные с использованием Turbo Vision
Литература
- Фаронов В. В. Turbo Pascal. Наиболее полное руководство, BHV-Санкт-Петербург,2007, ISBN 5-94157-295-6, CD
Примечания
- ↑ Free Vision . Дата обращения: 7 февраля 2022. Архивировано 7 февраля 2022 года.
- ↑ 1 2 magiblot. magiblot/tvision. — 2020-10-30. Архивировано 1 ноября 2020 года.
- ↑ 1 2 Free Vision - Free Pascal wiki . wiki.freepascal.org. Дата обращения: 7 февраля 2022. Архивировано 6 февраля 2022 года.
- ↑ 1 2 Free Vision for linux platform does not properly display the Russian language. (#21373) · Issues · FPC / FPC / FPC Source (англ.). GitLab. Дата обращения: 7 февраля 2022. Архивировано 7 февраля 2022 года.
- ↑ Virtual Pascal: Article / Main Features . web.archive.org. Дата обращения: 12 февраля 2022.
- ↑ Turbo Vision 2.0 Ported to TMT Pascal . pascal.sources.ru. Дата обращения: 12 февраля 2022. Архивировано 12 февраля 2022 года.
- ↑ Скачать Turbo Vision 2.0 Ported to TMT Pascal - Turbo Pascal . tpdn.ru. Дата обращения: 12 февраля 2022. Архивировано 12 февраля 2022 года.
- ↑ Turbo Vision port to the GNU compiler and more . tvision.sourceforge.net. Дата обращения: 12 февраля 2022. Архивировано 19 августа 2006 года.
- ↑ TVision homepage . www.sigala.it. Дата обращения: 12 февраля 2022. Архивировано 12 февраля 2022 года.
- ↑ MKM Software . www.math.ucdavis.edu. Дата обращения: 12 февраля 2022. Архивировано 12 февраля 2022 года.
- ↑ Graphics Vision v2.2 - Turbo Vision for SVGA Graphix . pascal.sources.ru. Дата обращения: 12 февраля 2022. Архивировано 12 февраля 2022 года.
- ↑ Скачать GraphVision v2.01. Графический TV - Turbo Pascal . tpdn.ru. Дата обращения: 12 февраля 2022. Архивировано 12 февраля 2022 года.
- ↑ GraphVision v2.01. Графический TV . pascal.sources.ru. Дата обращения: 12 февраля 2022. Архивировано 12 февраля 2022 года.