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++ на условиях общественного достояния. Версии же Turbo Vision из дистрибутивов Borland/Turbo Pascal никогда не выпускались под свободной лицензией, поэтому проект Free Pascal воссоздал свою собственную версию, Free Vision, путем обратного портирования в текстовый режим графического клона, созданного Леоном де Буром на основе свободной C++ версии.

Исходные тексты 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++ и Free Pascal.

Реализации сторонних разработчиков Название проекта Активен Последний релиз Последнее обновление Поддержка Юникода Язык Графическая Платформы Лицензия Turbo Vision (magiblot) Стабильных релизов нет (согласно GitHub) (UTF-8) C++ DOS, Linux, Windows MIT Free Vision FPC 3.2.2 Commits · main · FPC / FPC / FPC Source · GitLab (с февраля 2022) Pascal Большинство платформ, поддерживаемых FPC (протестировано на Linux и Windows) LGPL с исключениями для связывания TVision port to the GNU compiler 2.0.3 C++ DOS, FreeBSD, Linux, QNX, Solaris и Win32 GPL Порт для Virtual Pascal 2.1 Build 279 Нет информации Pascal Windows, OS/2, Linux Нет информации GraphVision 2.01 Нет информации Pascal DOS (графический режим) Нет информации TVision (Sergio Sigala) 0.8 C++ Linux и FreeBSD BSD-like Порт для TMT Pascal Не указан Нет информации Pascal DOS (TMT Pascal) Нет информации Graphics Vision (MKM Software) 3.0 (DOS/DPMI/Windows), 2.10R2, 2.01 (DOS) Нет информации Pascal DOS, Windows, Linux (GV/FPC), DPMI Бесплатно для индивидуального использования, коммерческая лицензия, DOS-библиотеки - LGPL Super Vision 2.2 Нет информации Pascal DOS (SVGA) Нет информации

Программы, использующие Turbo Vision

DOS Navigator IBM HandShaker SETEDIT RHIDE OSPlus Text editor TMBasic NE (NO Edlin) EditV IDA (DOS version) turbo (text editor) tvterm (terminal emulator)

Литература Фаронов В. В. Turbo Pascal. Наиболее полное руководство, BHV-Санкт-Петербург,2007, ISBN 5-94157-295-6, CD

Примечания

Ссылки Graphics Vision Free Vision TVision Sergio Sigala’s TVision Различные реализации от сторонних разработчиков

Категория:Программное обеспечение Borland Категория:Macintosh Категория:Паскаль Категория:Текстовый интерфейс Категория:Библиотеки текстового пользовательского интерфейса