Наука — Школе |
Когда мы пишем программу в окошке системы Блэкбокс, то мы создаем "документ"
в особом формате.
Такие документы хранятся на диске в файлах с расширениями .odc
(исторически это означает Oberon DoCument; напомним,
что Компонентный Паскаль является уточнением Оберона).
В основном мы работаем с текстовыми документами, но есть и другие разновидности документов:
например, вид и формат любых диалогов в Блэкбоксе (кроме стандартных диалогов
операционной системы) также задаются документами (т.наз. формы —
Forms).
Компилятор игнорирует любое форматирование (цвет, шрифт и т.п.), а также любые вставные визуальные объекты (о которых см. ниже), в том числе такие, которые сами по себе являются текстовыми документами.
Текстовые документы можно импортировать в документы Блэкбокса из файлов других форматов (см. диалог Файлы --> Открыть...), а также экспортировать в файлы других форматов (Файлы --> Сохранить как...). Чаще всего приходится иметь дело с обычными текстовыми файлами в разных кодировках, экспорт и импорт которых производятся стандартными действиями, одинаковыми для всех программ под MS Windows.
Не путать экспорт/импорт файлов с экспортом/импортом процедур и т.п. из модулей!
Блэкбокс допускает простой механизм добавления новых внешних форматов
(т.наз. конвертеры — см. модуль Converters).
Например, несложно добавить конвертеры для кодировки
KOI8-R и т.п.
Однако написание нового корвертера может быть непростым делом, например, для
файлов Microsoft Office (в стандартной дистрибуции
Блэкбокса такие конвертеры отсутствуют; для переноса текстов между Блэкбоксом и
программами MS Office с сохранением
форматирования можно использовать формат rtf —
Rich Text Format).
Текстовые документы Блэкбокса могут содержать как разнообразное
форматирование (см. об этом здесь),
так и "плавающие" в тексте "картинки" — визуальные объекты не обязательно
текстовой природы (общий термин Блэкбокса для обозначения таких объектов —
view).
Такие документы называются "составными" (compound documents).
В частности, в документ Блэкбокса можно вставлять обычным образом (Файлы
--> Вставить) любые картинки, которые можно вставить в
документы MS Word — картинки, нарисованные в
программах типа
Paint, цифровые фотографии и т.п.
В этом отношении документы Блэкбокса подобны, например, документам
программы Microsoft Word, однако построены документы
Блэкбокса гораздо более экономно и гибко.
При этом программист может добавлять к ним новые свойства и новое поведение
("функциональность"), хотя для этого требуется известная квалификация.
Примером специального визуального объекта, имеющего не только
изображение, но и поведение, является т.наз. коммандер
для запуска программ.
При клике мышкой по такому коммандеру Блэкбокс сообщает о факте клика коммандеру
(точнее, процедуре, определенным образом связанной с ним) и последний может "среагировать" так, как его запрограммировали: коммандер смотрит на свой "контекст"; определяет, что это
текстовый документ; читает символы, следующие сразу за ним; анализирует,
составляют ли они допустимое имя процедуры; отдает команду Блэкбоксу выполнить
эту процедуру. Что произойдет дальше, зависит уже не от коммандера, а от того,
найдет ли Блэкбокс эту процедуру и что она сделает при вызове.
Другой пример — маркеры ошибок компилятора, также являющиеся вставными визуальными объектами с поведением.
В качестве визуального объекта можно также вставлять и другие
текстовые документы.
Попробуйте скопировать любой фрагмент текста — например, с этой странички — и
вставить его в Рабочий журнал Блэкбокса посредством команды меню Правка
--> Вставить объект.
В этом случае вставляемый текстовый фрагмент будет содержаться внутри особого
окошка фиксированного размера (этот размер можно менять мышкой; если окошка не
видно, то кликните во вновь появившийся текст). Окошко стоит в основном
тексте как одна большая буква, не смешиваясь с основным текстом, но допуская
редактирование (достаточно кликнуть мышкой внутрь такого фрагмента и что-нибудь
напечатать).
Можно внутрь вставленного таким образом фрагмента вставить другие фрагменты,
картинки и т.п. — никаких специальных ограничений
для этого нет.
Наука — Школе |