Главная страница проекта ИНФОРМАТИКА-21

Наука Школе

О формате документов Блэкбокса

Когда мы пишем программу в окошке системы Блэкбокс, то мы создаем "документ" в особом формате.
Такие документы хранятся на диске в файлах с расширениями .odc (исторически это означает Oberon DoCument; напомним, что Компонентный Паскаль является уточнением Оберона).
В основном мы работаем с текстовыми документами, но есть и другие разновидности документов: например, вид и формат любых диалогов в Блэкбоксе (кроме стандартных диалогов операционной системы) также задаются документами (т.наз. формы — Forms).

Импорт/экспорт стандартных текстовых файлов

Текстовые документы можно импортировать в документы Блэкбокса из файлов других форматов (см. диалог Файлы --> Открыть...), а также экспортировать в файлы других форматов (Файлы --> Сохранить как...). Чаще всего приходится иметь дело с обычными текстовыми файлами в разных кодировках, экспорт и импорт которых производятся стандартными действиями, одинаковыми для всех программ под MS Windows.

Блэкбокс допускает простой механизм добавления новых внешних форматов (т.наз. конвертеры — см. модуль Converters).
Например, несложно добавить конвертеры для кодировки KOI8-R и т.п.
Однако написание нового корвертера может быть непростым делом, например, для файлов Microsoft Office (в стандартной дистрибуции Блэкбокса такие конвертеры отсутствуют; для переноса текстов между Блэкбоксом и программами MS Office с сохранением форматирования можно использовать формат rtfRich Text Format).

Вставные визуальные объекты (views)

Текстовые документы Блэкбокса могут содержать как разнообразное форматирование (см. об этом здесь), так и "плавающие" в тексте "картинки" — визуальные объекты не обязательно текстовой природы (общий термин Блэкбокса для обозначения таких объектов — view).
Такие документы называются "составными" (compound documents).
В частности, в документ Блэкбокса можно вставлять обычным образом (Файлы --> Вставить) любые картинки, которые можно вставить в документы MS Word — картинки, нарисованные в программах типа Paint, цифровые фотографии и т.п.

В этом отношении документы Блэкбокса подобны, например, документам программы Microsoft Word, однако построены документы Блэкбокса гораздо более экономно и гибко.
При этом программист может добавлять к ним новые свойства и новое поведение ("функциональность"), хотя для этого требуется известная квалификация.

Примером специального визуального объекта, имеющего не только изображение, но и поведение, является т.наз. коммандер для запуска программ.
При клике мышкой по такому коммандеру Блэкбокс сообщает о факте клика коммандеру (точнее, процедуре, определенным образом связанной с ним) и последний может "среагировать" так, как его запрограммировали: коммандер смотрит на свой "контекст"; определяет, что это текстовый документ; читает символы, следующие сразу за ним; анализирует, составляют ли они допустимое имя процедуры; отдает команду Блэкбоксу выполнить эту процедуру. Что произойдет дальше, зависит уже не от коммандера, а от того, найдет ли Блэкбокс эту процедуру и что она сделает при вызове.

Другой пример — маркеры ошибок компилятора, также являющиеся вставными визуальными объектами с поведением.

В качестве визуального объекта можно также вставлять и другие текстовые документы.
Попробуйте скопировать любой фрагмент текста — например, с этой странички — и вставить его в Рабочий журнал Блэкбокса посредством команды меню Правка --> Вставить объект.
В этом случае вставляемый текстовый фрагмент будет содержаться внутри особого окошка фиксированного размера (этот размер можно менять мышкой; если окошка не видно, то кликните во вновь появившийся текст). Окошко стоит в основном тексте как одна большая буква, не смешиваясь с основным текстом, но допуская редактирование (достаточно кликнуть мышкой внутрь такого фрагмента и что-нибудь напечатать).
Можно внутрь вставленного таким образом фрагмента вставить другие фрагменты, картинки и т.п. — никаких специальных ограничений для этого нет.

Главная страница проекта ИНФОРМАТИКА-21

Наука Школе