System/Docu/ru/User-Man.odc

Система Блэкбокс (BlackBox Component Builder)
Руководство пользователя
ENGLISH
Редакция перевода: Ф.В.Ткачев, 2010-10-17; 2012-11-27

Содержание
1Обзор
2Соглашенияпообозначениямитерминологии
3Установка(толькоWindows)
4Сервернаяустановка(толькоWindows)
5Удаление
6Окнадокументов,инструментальныеокна,вспомогательныеокна
7Размерыдокумента
8Настройкаменю 
9Текстовыересурсы
10Стандартныекоманды
	10.1МенюFile(Файлы)
	10.2МенюEdit(Правка)
	10.3МенюFont(Шрифт;MacOS)
	10.4МенюAttributes(Шрифт)
	10.5МенюWindow (Окна;Windows)/менюWindows(Окна;MacOS)
11Дополнительныекоманды

Продолжение руководства пользователя
ПодсистемаText
ПодсистемаForm
ПодсистемаDev

1 Обзор
Настоящий документ  руководство для программистов, использующих Блэкбокс как инструмент разработки. Он не предназначен быть руководством для конечных пользователей приложений, созданных с помощью системы Блэкбокс. 
Предполагается, что читатель знаком с принципами построения интерфейсов приложений в операционной системе.

В системе Блэкбокс отсутствуют отдельные среды для разработки программ, тестирования и отладки, а также распространения. Все эти задачи решаются в единой, по-настоящему интегрированной среде. Окончательная, предназначенная для распространения версия приложения, созданного в Блэкбоксе, получается просто путем исключения инструментов, специфичных для этапа разработки.

Никакие инструменты разработки (подситема Dev) или документация не предназначены для распространения. Однако все остальные части системы Блэкбокс могут свободно распространяться с приложениями; при этом не требуется никаких денежных отчислений.
<Прим. перев.: Начиная с версии 1.5, компания Oberon microsystems распространяет систему Блэкбокс в исходных кодах и с соответствующей лицензией. См. документ Лицензионнаяполитика.>

Так модифицированная версия системы Блэкбокс сохранит основные возможности архитектуры составных документов, предоставляемые каркасом Блэкбокса, а также будет включать стандартные подсистемы Text и Form. Кроме того, она будет представлять из себя стандартное приложение Windows или Mac OS, которое можно запускать двойным кликом, которое может открывать документы, если их бросить мышкой на его иконку, и т.п.

Можно создавать и традиционные приложения, которые только разрабатываются в системе Блэкбокс, но работать будут автономно. Для этого предусмотрен специальный компоновщик. Обычно модули Компонентного Паскаля компонуются и загружаются динамически, так что отдельный компоновщик не нужен. Тем не менее, даже для приложения, полностью написанного в Блэкбоксе, можно скомпоновать или упаковать вместе все или часть модулей, чтобы уменьшить количество распространяемых файлов. Подробнее см. документ Особенности,зависящиеотплатформы.

Доступная документация:
Подчеркнутые фрагменты синего цвета являются гиперссылками; клики по ним открывают соответствующие документы.

Начиная работать в Блэкбоксе, полезно иметь в виду, что почти любые изменения документов Блэкбокса обратимы, то есть можно достаточно свободно экспериментировать со средой, не опасаясь что-нибудь испортить. В среде всегда доступен многоуровневый механизм отмены/повтора, то есть может быть отменена не только одна команда, а столько, сколько позволяет объем памяти.

Mac OS:
Всякий раз, когда система выполняет команду дольше, чем доля секунды, Блэкбокс заменяет обычный курсор на специальный курсор ожидания, изображение которого меняется, пока выполняется команда. Но это не гарантирует, что выполняемая программа действительно совершает полезную работу. Например, курсор ожидания будет продолжать меняться, хотя программа вошла в бесконечный цикл. В таких случаях используйте command-option-. для прерывания программы. Имейте в виду, что реакция может последовать лишь через несколько секунд.

Windows:
В WindowsNT и Windows9x бесконечный цикл может быть прерван нажатием ctrl+break.


2 Соглашения по обозначениям и терминологии
Содержание данного документа в основном относится к обеим версиям системы Блэкбокс  для Windows и для MacOS. Там, где имеются отличия (например, функция доступна только на одной из платформ), это будет указано явно, как в предыдущем абзаце. Чтобы сократить количество таких платформо-зависимых замечаний, вводятся следующие обозначения:

 Папки MacOS называются папками или директориями.
 В качестве разделителя папок в названиях путей используется знак "/", как это принято в Unix и в сети Интернет.
 Имена файлов и папок содержат заглавные и строчные литеры.
 В главах, которые не относятся только к Windows, имена файлов документов приводятся без расширения ".odc", принятого в Windows.
 Клавиша модификатора (modifier): в Windows это клавиша ctrl, в MacOS это клавиша option.
 Команды меню: M->I является кратким обозначением для пункта I в меню M, например, File->New.
 Отличия между Windows и MacOS могут указываться тремя способами. 
Для серьезных отличий используются отдельные разделы для двух платформ. В этом случае названия разделов имеют окончания (только Windows) или (только MacOS). Если нет дальнейших оговорок, то следующий абзац касается обеих платформ. 
Менее серьезные отличия указаны с помощью кратких замечаний, обычно сначала идет замечание о поведении, специфичном для Windows, за которым следует замечание, относящееся к MacOS (ср. конец предыдущего раздела). 
Для мелких отличий используется нотация, подобная следующей: Для перетаскивания с указанием (drag&pick) удерживайте клавишу alt (Windows) / клавишу command (MacOS) во время перетаскивания.


3 Установка (только Windows)
Система Блэкбокс требует для своей работы компьютер с процессором i386 или более мощным, Windows95, Windows98 (SE/ME), WindowsNT, Windows2000,  WindowsXP или Windows Server 2003.
Достаточно иметь двухкнопочную мышь, но рекомендуется мышь с тремя кнопками (см. раздел 15. Правила построения пользовательских интерфейсов в системе Windows 95 <в документе Text/Docu/ru/User-Man прим. ред.>).

Получившаяся папка BlackBox содержит следующие файлы и папки:

Файлы:
BlackBox.exe	Загрузочная программа для Блэкбокса.
BlackBox.exe.manifest	Manifest-файл для BlackBox.exe.
Empty.odc	Пустой документ в формате Блэкбокса.
Tour.odc	Краткий обзор системы Блэкбокс.
unins000.dat	Файл с данными для удаления (Uninstall) системы Блэкбокс.
unins000.exe	Приложение, удаляющее систему Блэкбокс.

Папки:
Com	Компилятор Direct-To-COM.
Comm	Подсистема коммуникаций.
Ctl	Поддержка автоматизации OLE.
Dev	Подсистема разработки.
Docu	Постоянно доступная документация, не привязанная к конкретному модулю или подсистеме.
Dtf	dtf-драйвер для подсистемы Sql.
Form	Подсистема диалоговых форм с визуальным дизайнером.
Host	Внутренний код системы Блэкбокс.
Obx	Подсистема Obx  набор примеров.
Ole	Поддержка составных документов OLE.
Sql	Подсистема Sql для доступа к реляционным базам данных.
Std	Набор пакетов команд, доступных для пользователей.
System	Ядро каркаса Блэкбокса.
Text	Текстовая подсистема со стандартным редактором документов и программ.
Win	Интерфейсные модули для прямого доступа к WindowsAPI.
Xhtml	Поддержка конвертации текста в HTML.


4 Серверная установка (только Windows)
Если несколько разработчиков используют Блэкбокс на одной машине (машинах), то становится неудобным каждому сохранять свою работу и в конце сессии наводить порядок, чтобы следующий разработчик вновь получил чистую систему. Еще менее удобно начинать работу с копией, в которой предыдущий пользователь не навел порядка. Решить эту проблему помогает серверная установка Блэкбокса.
Можно установить и поддерживать Блэкбокс на одном центральном сервере, в то время как разработчики используют произвольное количество машин в локальной сети. Предпочтительно, чтобы каждый разработчик имел свою рабочую директорию на сервере (account, учетную запись). 
Заметим, что в случае BlackBoxClassicEdition необходимо получить отдельную лицензию на каждое место разработчика, который использует серверную установку.

Для установки следуйте указаниям:

1) Установите Блэкбокс в директорию на серверной машине с помощью Setup.exe. Директория должна быть открыта в сети для общего доступа, но доступ может быть только для чтения.

2) Для каждой рабочей станции/ пользователя создайте рабочую папку (не имеет значения, на сервере или на клиенте). Пользователь должен иметь доступ к этой папке для чтения/записи.

3) Для каждой рабочей станции создайте ярлык со следующим содержимым:

	Командная строка (Target): "<BlackBoxFDir>\BlackBox.exe /Use <WorkDir>"
	Рабочая папка (Start in): "<WorkDir>"

где <BlackBoxFDir> соответствует полному названию директории, в которой установлен Блэкбокс (на сервере), а <WorkDir>  названию рабочей папки на соответствующей машине (на клиенте или на сервере). Последний параметр не должен заканчиваться обратным слэшем ("\").

Пример:
  Командная строка (Target): "S:\BLACKBOX\BlackBox.exe /Use C:\BLACKBOX"
  Рабочая папка (Start in): "C:\BLACKBOX"

Такой режим работы, первоначально предназначавшийся для случаев, когда Блэкбокс используется несколькими разработчиками, может быть полезен и для организации работы единственного пользователя. Идея в том, чтобы использовать одну директорию, в которой установлен Блэкбокс, и отдельную папку для всех файлов разработчика. При открытии файла он сначала ищется в рабочей папке пользователя. Если файла там нет, то он будет взят из серверной директории. Сохраняется же файл всегда в рабочей папке. Это облегчает организацию полностью независимых проектов, для которых создаются отдельные независимые папки. Когда выходит обновление для системы Блэкбокс, достаточно обновить только центральную серверную директорию. Если серверные возможности используются только таким образом, без одновременного использования одной инсталляции несколькими пользователями, то специальной лицензии не требуется.


5 Удаление
В Панели Управления WIndows выберите Установка/Удалениепрограмм. В появившемся списке выберите пункт BlackBox и нажмите кнопку Изменить/Удалить. Затем следуйте инструкциям на экране.


6 Окна документов, вспомогательные окна, инструментальные окна
В системе Блэкбокс имеется три разновидности окон: окна документов, инструментальные окна (tool windows) и вспомогательные окна (auxiliary windows).

Окна документов могут содержать, напрмер, текст, или эскиз диалоговой формы, или любые другие объекты изображения (вьюшки, views). Если содержимое окна документа поменялось (окно стало грязным), а пользователь пытается закрыть окно (или выйти из приложения), то система спрашивает, следует ли сохранить документ.

Инструментальные окна позволяют выполнять операции в некотором окне документа, находящемся под инструментальным окном. Обычно инструментальные окна используются для немодальных диалогов.

Windows:
Инструментальное окно выглядит аналогично диалоговым окнам.

Mac OS:
Инструментальные окна выглядят аналогично немодальным диалоговым окнам, то есть аналогично окнам документов. Чтобы пользователь мог различать окна документов и инструментальные окна, заголовки последних заключаются в скобки "<<" и ">>".

Вспомогательные окна используются в основном для показа сиюминутной информации (пример  окно Рабочего журнала). Содержимое таких окон можно редактировать, но система не будет спрашивать о сохранении изменений, так как такое содержимое по сути не предназначено для хранения.

Windows:
Окно документа помечается значком документа Блэкбокса, а вспомогательные окна помечаются значком приложения Блэкбокса.

Mac OS:
Вспомогательные окна выглядят аналогично окнам документов. Чтобы пользователь мог их различать, заголовки вспомогательных окон заключаются в скобки "[" и "]".


7 Размеры документа
Размер документа, а точнее  его самой внешней (корневой) вьюшки, может быть изменен несколькими способами. Его ширина или высота могут быть независимо друг от друга заданы либо фиксированными размерами, которые определяются в диалоговом окне Разметкастраниц (Page Setup), либо текущими размерами окна.

Например, текстовые вьюшки (text views) по умолчанию имеют ширину, соответствующую ширине бумажной страницы, и высоту в размер окна. Тексты документации часто ограничиваются по обоим измерениям текущим размером окна так, чтобы размер автоматически изменялся вместе с окном. Такие связи могут быть определены с помощью диалогового окна Инструменты->Размерыдокумента... (Tools->DocumentSize...).


8 Настройка меню
[исправлено для версии Блэкбокса 1.5 и старше  ред.]
Чтобы настроить меню, можно выполнить команду Инфо->Меню (Info->Menus). Откроется окошко с гиперссылками, которые открывают конфигурационные документы меню всех подсистем. Эти документы можно менять, а затем активировать новую конфигурацию меню командой Инфо->Обновитьменю /Info->UpdateMenu. Чтобы сохранить изменения на будущее, тексты меню следует сохранить на диск. В частности, первая гиперссылка в упомянутом окошке указывает на документ System/Rsrc/Menus, который описывает конкретные меню, активируемые при старте Блэкбокса.

Описание меню состоит из последовательности определений отдельных меню, и каждое такое определение в свою очередь содержит последовательность описаний пунктов меню. В качестве примера приведём часть возможного описания меню Dev:
 MENU "Dev"
	"Compile"	"K"	"DevCompiler.Compile"	"TextCmds.FocusGuard"
	"Compile Selection"	""	"DevCompiler.CompileSelection"	"TextCmds.SelectionGuard"
	SEPARATOR
	"Unmark Errors"	""	"DevMarkers.UnmarkErrors"	"TextCmds.FocusGuard"
	"Next Error"	"E"	"DevMarkers.NextError"	"TextCmds.FocusGuard"
	"Toggle Error Mark"	""	"DevMarkers.ToggleCurrent"	"TextCmds.FocusGuard"
	SEPARATOR
	"Insert Commander"	""	"DevCommanders.Deposit; StdCmds.PasteView"	"TextCmds.PasteViewGuard"
	"Execute"	""	"DevDebug.Execute"	"TextCmds.SelectionGuard"
	"Unload"	""	"DevDebug.Unload"	"TextCmds.SelectionGuard"
END

Каждое меню имеет название, в данном случае Dev. Можно указать также тип меню, например:

MENU "Text" ("TextViews.View")

Такое типизированное меню зависит от контекста, то есть появляется в полоске меню, только если данные в переднем окне (точнее, в фокусе) имеют надлежащий тип.
Обычно тип меню  это просто имя типа объекта избражения (view type). Однако это всего лишь соглашение, гарантирующее, что типы меню уникальны в глобальном контексте и будут исключены конфликты имен.

Mac OS:
Стандартные меню, то есть Файл, Правка, Шрифт, Атрибуты и Окна (File, Edit, Font, Attributes, Windows), предопределены и не являются частью конфигурационного текста.

Существуют две разновидности пунктов меню: обычные и разделители (separator). Разделители служат для визуальной группировки пунктов. Обычные пункты описываются четырьмя литерными цепочками, которые задают название, горячую клавишу для быстрого вызова, собственно действие и т.наз. охрану (guard command). Название  это цепочка литер, которая будет видна в меню. Символ "&" в ней указывает, что следующая литера в надписи будет подчеркнута (эта возможность есть только в MS Windows, но не в MacOS). Если нужно поместить в названии пункта саму литеру "&", следует написать "&&" (это справедливо и для MacOS, то есть синтаксис здесь одинаков для обеих платформ).

Цепочка литер, задающая горячую клавишу (эту цепочку можно оставить пустой), позволяет связать с пунктом меню комбинацию клавиш. Действие  это последовательность вызовов процедур (разделенных литерой ";"), которая выполняется при вызове пункта меню. Охрана, которая может быть пустой, содержит команду, которая периодически вызывается системой, чтобы определить, является пункт активным или нет, помечен он (галочкой) или нет, или чтобы установить название пункта, отличное от основного (например, переключает ПоказатьАВС на СкрытьАВС).

Примечание: процедуры охраны меню вызываются, например, когда пользователь щелкает мышью по линейке меню. Это вызывает загрузку модуля, в котором содержится процедура охраны, даже если соответствующая команда никогда не вызывается.

Примечание: если модуль с процедурой охраны не может быть загружен, пункт меню будет оставаться дезактивирован и охрана больше не вызывается (по соображениям быстродействия). Если код модуля станет доступен позднее, например, после его компиляции, то пункт меню будет оставаться по-прежнему дезактивирован пока не будет вызвана принудительная проверка охраны командой Разработка->Обновить ресурсы (Dev->FlushResources).

Примечание: стандартная конфигурация меню использует для горячих клавиш все буквы алфавита и цифру "0". Цифры от "1" до "9" не используются. Горячие клавиши, как и вся конфигурация меню, могут быть легко настроены под конкретные нужды редактированием текста меню.

Windows:
В качестве горячих могут быть заданы следующие сочетания клавиш (они игнорируются в MacOS):
	"A".."Z", "0".."9"	Ctrl + клавиша
	"*A".."*Z", "*0".."*9"	Shift + Ctrl + клавиша
	"F1".."F12"	функциональные клавиши
	"^F1".."^F12"	Ctrl + функциональная клавиша
	"*F1".."*F12"	Shift + функциональная клавиша
	"*^F1".."*^F12"	Shift + Ctrl + функциональная клавиша

Windows:
Контекстные меню (всплывающие меню, вызываемые правой кнопкой мыши) определяются заданием литеры "*" в качестве имени. Одно и только одно контекстное меню может быть нетипизированным, все остальные должны иметь тип.
Например, предположим, что строка

        "Open &Module"  ""      "DevCmds.OpenModuleList"        "TextCmds.SelectionGuard"

добавляется в меню  MENU "*" ("TextViews.View")  в файле Text/Rsrc/Menus. Это добавит в контекстное меню команду, открывающую исходники модулей, имена которых выделены в текстовом документе.

В принципе все определения меню можно собрать в одном документе Sytem/Rsrc/Menus. Однако разумней держать описания меню с командами, специфичными для подсистем, в папках ресурсов этих подсистем. Например, меню Text можно определить в документе Text/Rsrc/Menus. В этом случае в основной документ System/Rsrc/Menus нужно вставить инструкцию, которая указывает, где искать это меню:

	INCLUDE "Text"

Используя явную инструкцию включения, можно задавать порядок отдельных меню в строке меню. Инструкция

	INCLUDE "*"

подключит все меню, которые не были явно указаны перед этим (напрямую или с помощью инструкций включения). Рекомендуется помещать эту инструцию в конец текста System/Rsrc/Menus. Например, типичный текст System/Rsrc/Menus выглядит следующим образом:

	INCLUDE "Dev"
	INCLUDE "Form"
	INCLUDE "Sql"
	INCLUDE "Obx"
	INCLUDE "Text"
	INCLUDE "*"

После изменения текстов, описывающих меню, новая конфигурация меню активируется командой Info>UpdateMenus. 
Это лучше сделать, не сохраняя на диск измененные тексты меню: тогда в крайнем случае можно восстановить конфигурацию меню до изменений, отказавшись от сохранения измененных текстов меню на диск и перезапустив Блэкбокс.

См. также модули StdMenuTool и StdCmds. Модули пакетов команд всех стандартных подсистем экспортируют команды, которые можно использовать в меню. Справки можно получить в документации к различным модулям, например, в документе Text/Docu/Cmds для модуля TextCmds.


9 Текстовые ресурсы
Текстовые ресурсы  это файлы, которые устанавливают соответствия между литерными цепочками (фактически словари для перевода прим. ред.); например, цепочке "untitled" может быть поставлена  в соответствие "sans titre". Это позволяет вынести сложные текстовые сообщения из программного кода и дать возможность менять эти сообщения без перекомпиляции. Перевод литерных цепочек происходит в нескольких процедурах модуля Dialog, например, Dialog.MapString. Файлы текстовых ресурсов могут быть обычными текстовыми документами Блэкбокса, которые состоят из ключевого слова STRINGS, за которым следуют строки текста, причем каждая строка включает в себя литерную цепочку (ключ), символ табуляции, другую цепочку (которая ставится в соответствие ключу) и возврат каретки, например:

STRINGS
untitled	sans titre
open	ouvre
close	ferme

В каждой подсистеме может быть один файл текстовых ресурсов (-> 7.2 Модули и подсистемы). Например, вызов

Dialog.MapString("#Form:CntrlInstallFailed", resultString)

в программе преобразует цепочку "CntrlInstallFailed" в соответствии с таблицей в файле Form/Rsrc/Strings. В английской версии результатом будет "form controller installation failed". В немецкой версии та же самая цепочка может преобразоваться в "Der Form Controller konnte nicht installiert werden".


10 Стандартные команды
В этом разделе описываются команды стандартных меню File (Файл), Edit (Правка), Font (Шрифт; MacOS), Attributes (Шрифт, Windows), и Window(s) (Окна). Для команд меню, которые могут быть (де)активированы, приводятся условия их активации. Часто такая команда охраны экспортируется модулем StdCmds.

Windows:
В ОС Windows стандартные меню могут быть настроены так же, как и все остальные меню, т.е. редактированием документа System/Rsrc/Menus. Большинство стандартных пунктов меню вызывают команды из модуля StdCmds.


10.1 Меню File (Файлы)

New (Новый)
Команда: StdCmds.New
Охрана: отсутствует
Открывает окно с новым документом, фактически содержащее пустую текстовую вьюшку (text view).

Open... (Открыть...)
Команда: HostCmds.Open
Охрана: отсутствует
Вызывает стандартный диалог открытия файла.

Mac OS:
Показываются только документы Блэкбокса (то есть файлы MacOS, имеющие тип = "oODC"), папки и разделы. Если отметить флажок Morefiles (ещё файлы), то будут показаны все остальные файлы, для которых есть конвертеры. Если для импорта файла есть несколько подходящих конвертеров, то выбрать нужный можно в выпадающем меню Format.

Open Stationery... (Открыть копию...)
Команда: StdCmds.OpenStationery
Охрана: отсутствует
Вызывает стандартный диалог, чтобы открыть копию файла-шаблона.

Mac OS:
Показываются только документы Блэкбокса (то есть файлы MacOS, имеющие тип = "oODC"), папки и разделы. Если отметить флажок Morefiles (ещё файлы), то будут показаны все остальные файлы, для которых есть конвертеры. Если для импорта файла есть несколько подходящих конвертеров, то выбрать нужный можно в выпадающем меню Format.

Close (Закрыть)
Команда: HostCmds.Close
Охрана: StdCmds.WindowGuard
Закрывает переднее окно. Если окно является первичным окном документа и его содержимое было изменено (грязное), пользователю будет задан вопрос, следует ли сохранить содержание окна в файл.

Save (Сохранить)
Команда: HostCmds.Save
Охрана: HostCmds.SaveGuard
Сохраняет содержимое переднего окна в файл. Если содержимое окна ещё в файл не сохранялось, то будет запрошено имя файла.

Save As... (Сохранить как...)
Команда: HostCmds.SaveAs
Охрана: StdCmds.WindowGuard
Сохраняет содержимое переднего окна в файл. Всегда запрашивается имя файла. После выполнения команды работа продолжается с новым файлом.

Save Copy As... (Сохранить копию как...)
Команда: HostCmds.SaveCopyAs
Охрана: StdCmds.WindowGuard
Сохраняет содержимое переднего окна в файл. Всегда запрашивается имя файла. После выполнения команды работа продолжается со старым файлом.

Page Setup... (Разметка страниц...)
Команда: HostDialog.InitPageSetup; StdCmds.OpenToolDialog('Host/Rsrc/Cmds', 'Page Setup')
Охрана: StdCmds.WindowGuard
Запрашивает информацию о формате страниц документа в переднем окне для последующей печати.

В дополнение к данным, специфичным для текущего драйвера принтера, здесь можно задать поля (расстояния между краями бумаги и областью печати), а также задать или отменить печать стандартного колонтитула страницы. Стандартный колонтитул состоит из номера страницы и даты.

Mac OS:
Для некоторых драйверов принтера нужно включать печать в оттенках серого (а не черно-белую), иначе при печати могут получиться полностью черные страницы.

Print... (Печать...)
Команда: HostCmds.Print
Охрана: HostCmds.PrintGuard
Запрашивает информацию по печати и затем выполняет её соответствующим образом.

Send Document... (Отправить документ...) (Windows)
Команда: HostMail.SendDocument
Охрана: HostMail.SendDocumentGuard
Посылает документ в переднем окне по электронной почте.

Send Note... (Отправить заметку...) (Windows)
Команда: HostMail.SendNote
Охрана: HostMail.SendNoteGuard
Отправляет заметку по электронной почте. Заметкой считается выделенный фрагмент текста, если таковой имеется.

Exit (Выход) (Windows)
(Quit) (Mac OS)
Команда: HostCmds.Exit
Охрана: отсутствует
Закрывает приложение. Если есть открытые окна с изменённым содержимым, то будут выданы запросы об их сохранении в файлы.


10.2 Меню Edit (Правка)

Undo [...] (Отменить[...])
Команда: StdCmds.Undo
Охрана: StdCmds.UndoGuard
Обращает эффект самой последней операции правки (редактирования). Обычно тип операции указывается после слова Отменить, например, Отменить Вставка. Отмена может быть выполнена несколько раз  пока не будет восстановлено состояние документа на момент его открытия, создания или последнего сохранения. При нехватке оперативной памяти количество операций, запоминаемых для возможной отмены, может быть сокращено.

Redo [...] (Повторить[...])
Команда: StdCmds.Redo
Охрана: StdCmds.RedoGuard
Повторяет последнюю из отмененных операций. Обычно тип операции указывается после слова Повторить.

Cut (Вырезать)
Команда: HostCmds.CutGuard
Охрана: HostCmds.Cut
Удаляет выделенный фрагмент и помещает его в буфер обмена.

Сopy (Копировать)
Команда: HostCmds.CopyGuard
Охрана: HostCmds.Copy
Копирует выделенный фрагмент в буфер обмена.

Paste (Вставить)
Команда: HostCmds.PasteGuard
Охрана: HostCmds.Paste
Вставляет копию содержимого буфера обмена в позиции курсора. Если вьюшка, находящаяся в фокусе, содержит данные того же типа, что и буфер обмена, то данные из буфера вставляются непосредственно в данные вьюшки. В противном случае и при условии, что вьюшка в фокусе является контейнером (т.е. имеет тип, наследующий типу Containers.Container прим. ред.), в данные этой вьюшки вставляется копия всего объекта изображения, содержащего данные из буфера.

Delete (Удалить) (Windows)
Команда: StdCmds.Clear
Охрана: StdCmds.CutGuard
Удаляет выделенный фрагмент без помещения его в буфер обмена.

Copy Properties (Копировать свойства )
Команда: StdCommands.CopyProp
Охрана: StdCmds.SelectionGuard
Копирует свойства текущего выделенного фрагмента (например, атрибуты текста прим. ред.). Эта команда не влияет на содержимое буфера обмена (т.е. копирование производится в особый буфер прим. ред.).

Paste Properties (Применить свойства)
Команда: StdCommands.PasteProp
Охрана: StdCmds.SelectionGuard
Применяет (к выделенному фрагменту в окне) свойства, которые были скопированы в последний раз (см. Copy Properties).

Paste Object (Вставить объект) (Windows)
Paste as Part (Вставить как часть) (Mac OS)
Команда: HostCmds.PasteObject
Охрана: HostCmds.PasteObjectGuard
Вставляет копию содержимого буфера обмена в позиции курсора. Если вьюшка в фокусе является контейнером (т.е. имеет тип, наследующий типу Containers.Container прим. ред.), то в данные этой вьюшки вставляется копия всего объекта изображения, содержащего данные из буфера.

Paste Special... (Вставка специальная ...) (Windows)
Команда: HostCmds.PasteSpecial
Охрана: HostCmds.PasteObjectGuard
Открывает диалоговое окно, которое позволяет выбрать тип данных объекта изображения в буфере обмена, если этот объект поддерживает несколько возможных типов.

Paste to Window (Открыть в новом окне) (Windows)
Команда: HostCmds.PasteToWindowGuard
Охрана: HostCmds.PasteToWindow
Открывает копию содержимого буфера обмена в новом окне документа.

Insert Object... (Вставить внешний объект...) (Windows)
Команда: OleClient.PasteSpecial
Охрана: StdCmds.PasteViewGuard
Открывает диалоговое окно, в котором показаны все доступные серверы OLE. Когда выбран один из них, создаётся объект соответствующего типа и вставляется в содержимое переднего окна.

Object Properties... (Свойства объекта...) (Windows)
Команда: HostMenus.ObjProperties
Охрана: HostMenus.PropertiesGuard
Открывает список свойств, соответствующий выделенной вьюшке.

Object (Объект) (Windows)
Команда: HostMenus.ObjectMenu
Охрана: HostMenus.ObjectMenuGuard
Показывает подменю с командами для выделенной вьюшки. Эти команды задаются самой выделенной вьюшкой и называются глаголы (verbs). Обычно первые два глагола - это Edit и Open (Править и Открыть):

	Edit (Править)
	Передаёт фокус выделенной вьюшке.

	Open (Открыть)
	Открывает новое окно со вторичной вьюшкой для выделенной.

	+ другие глаголы, определённые выделенным объектом изображения.

Clear (Очистить) (Mac OS)
Команда: StdCmds.Clear
Охрана: StdCmds.CutGuard
Удаляет выделенные фрагмент без помещения его в буфер обмена.

Select Document (Выделить документ как целое)
Команда: StdCmds.SelectDocument
Охрана: StdCmds.WindowGuard
Выделяет корневую вьюшку для документа в переднем окне как единое целое. Это не то же самое, что команда Выделить всё (SelectAll), которая выделяет всё содержимое документа (точнее, содержимое вьюшки в фокусе).

Select All (Выделить всё)
Команда: StdCmds.SelectAll
Охрана: StdCmds.SelectAllGuard
Выделяет всё содержимое вьюшки в фокусе.

Select Next Object (Выделить следующий объект) (Windows)
Команда: StdCmds.SelectNextView
Охрана: StdCmds.ContainerGuard
Если в контейнере выделена вьюшка: выделяет следующую вьюшку.
Если выделена последняя вьюшка или вообще ничего не выделено: выделяет первую вьюшку.

Part Info (Информация о части) (Mac OS)
Команда: HostCmds.PartInfo
Охрана: StdCmds.SingletonGuard
Открывает немодальный диалог с некоторой информацией о выделенной вьюшке.

View In Window (Показать в окне) (Mac OS)
Команда: HostCmds.ViewInWindow
Охрана: StdCmds.WindowGuard
Открывает новое окно, показывающее вьюшку в фокусе в переднем окне. Заголовок окна заключается в скобки "(" и ")". Эта команда аналогична "New Window" (см. выше), за исключением того, что она открывает новое окно на вьюшку, находящуюся в фокусе в данный момент, которая может быть, а может и не быть корневой.

Preferences... (Настройки...) (Windows)
Команда: HostDialog.InitPrefDialog; StdCmds.OpenToolDialog('HostDialog.prefs', 'Preferences')
Охрана: отсутствует
Позволяет задавать несколько параметров: следует ли использовать метрику TrueType (для повышения качества печати), следует ли обновлять экран во время прокрутки, какой шрифт использовать для текстов по умолчанию, какой шрифт  для элементов управления, и следует ли показывать полоску состояния.


10.3 Меню Font (Шрифт) (Mac OS)
Меню доступно, если выделенный фрагмент или курсор во вьюшке в фокусе в переднем окне допускает управление шрифтом.

Default Font (Шрифт по умолчанию)
Устанавливает шрифт по умолчанию для выделенного фрагмента или курсора. Шрифт по умолчанию соответствует одному из конкретных шрифтов, показанных ниже, но это соответствие может быть изменено динамически.

{гарнитура}
Далее приводится список всех доступных шрифтов. Устанавливает выбранный шрифт (точнее, гарнитуру) для выделенного фрагмента или курсора.

Галочкой помечен пункт меню, соответствующий шрифту курсора или выделенного фрагмента (если последний однороден).

Set Default Font (Установить шрифт по умолчанию)
Делает шрифт курсора или выделенного фрагмента новым шрифтом по умолчанию. Все видимые фрагменты текста, которым присвоен шрифт по умолчанию, будут перерисованы новым шрифтом.


10.4 Меню Attributes (Шрифт)

Меню доступно. если выделенный фрагмент или курсор во вьюшке в фокусе в переднем окне допускают управление стилем/кеглем/цветом.

Следующие команды применимы к выделенному фрагменту; если такого нет, они повлияют на текущие атрибуты в позиции курсора.

Как вариант доступен системный цвет (цвет по умолчанию), который может настраиваться пользователем. В Windows цвет по умолчанию может быть изменен с помощью средств операционной системы. Все, что отрисовано цветом по умолчанию, будет соответственно обновлено.

Regular (Простой) (Windows)
Plain (Простой) (Mac OS)
Команда: StdCmds.Plain
Охрана: StdCmds.PlainGuard
Команда отмечена: если текст влево и вправо от курсора простой, или если выделенный текст весь простой (то есть не полужирный, не курсив, не подчеркнут и не вычеркнут).
Снимает для выделенного фрагмента все атрибуты стиля (полужирность, курсив, подчеркивание, вычеркивание).

Bold (Полужирный)
Команда: StdCmds.Bold
Охрана: StdCmds.BoldGuard
Команда отмечена: если текст справа и слева от курсора полужирный, или выделенный фрагмент весь полужирный.
Если выделенный фрагмент весь полужирный, он теряет этот атрибут, в противном случае  становится полужирным.

Italic (Курсив)
Команда: StdCmds.Italic
Охрана: StdCmds.ItalicGuard
Команда отмечена: если текст справа и слева от курсора курсивный, или выделенный фрагмент весь курсивный.
Если выделенный фрагмент весь курсивный, он теряет этот атрибут, в противном случае  становится курсивным.

Underline (Подчеркнутый)
Команда: StdCmds.Underline
Охрана: StdCmds.UnderlineGuard
Команда отмечена: если текст справа и слева от курсора подчеркнут, или выделенный фрагмент весь подчеркнут.
Если выделенный фрагмент весь подчеркнут, он теряет этот атрибут, в противном случае текст подчеркивается.

Strikeout (Вычеркнутый) (Mac OS)
Команда: StdCmds.Strikeout
Охрана: StdCmds.StrikeoutGuard
Команда отмечена: если текст справа и слева от курсора вычеркнут, или выделенный фрагмент весь вычеркнут.
Если выделенный фрагмент весь вычеркнут, он теряет этот атрибут, в обратном случае текст вычеркивается.

(8 point (Windows),) 9 point, 10, 12, 16, 20, 24 (.. пунктов)
Команда: StdCmds.Size(size)
Охрана: StdCmds.SizeGuard(size)
Команда отмечена: если текст справа и слева от курсора имеет данный кегль, или выделенный фрагмент весь имеет данный кегль.
Выделенный фрагмент приобретает данный кегль.

Size... (Кегль...) (Windows)
Other Size... (Другой кегль...) (Mac OS)
Команда: StdCmds.InitSizeDialog; StdCmds.OpenToolDialog('Std/Rsrc/Cmds', 'Size')
Охрана: StdCmds.SizeGuard(-1)
Команда отмечена: если не применен никакой другой кегль.
Открывается инструментальный диалог, который позволяет задать кегль шрифта в типографских пунктах, и затем выделенный фрагмент приобретает этот кегль.

Default Color (Цвет по умолчанию)
Команда: StdCmds.Color(1000000H)
Охрана: StdCmds.ColorGuard(1000000H)
Команда отмечена: ---
---

Black (Черный)
Команда: StdCmds.Color(0000000H)
Охрана: StdCmds.ColorGuard(0000000H)
Команда отмечена: ---
---

Red (Красный)
Команда: StdCmds.Color(00000FFH)
Охрана: StdCmds.ColorGuard(00000FFH)
Команда отмечена: ---
---

Green (Зеленый)
Команда: StdCmds.Color(000FF00H)
Охрана: StdCmds.ColorGuard(000FF00H)
Команда отмечена: ---
---

Blue (Синий)
Команда: StdCmds.Color(0FF0000H)
Охрана: StdCmds.ColorGuard(0FF0000H)
Команда отмечена: ---
---

Color... (Цвет...) (Windows)
Other Color... (Другой цвет...) (Mac OS)
Команда: HostDialog.ColorDialog
Охрана: StdCmds.ColorGuard(-1)
Команда отмечена: если не применен никакой другой цвет.
Запрашивает у пользователя цвет и прменяет его к выделенному фрагменту.

Set Default Color... (Установить цвет по умолчанию... (Mac OS)
Запрашивает у пользователя цвет, который принимается за цвет по умолчанию.

Default Font (Шрифт по умолчанию) (Windows)
Команда: StdCmds.DefaultFont
Охрана: StdCmds.DefaultFontGuard
Применяет к выделенному фрагменту шрифт по умолчанию.

Font... (Шрифт...) (Windows)
Команда: HostDialog.FontDialog
Охрана: StdCmds.TypefaceGuard
Открывает стандартный диалог выбора шрифта и применяет выбранные атрибуты к выделенному фрагменту.

Typeface... (Гарнитура...) (Windows)
Команда: HostDialog.TypefaceDialog
Охрана: StdCmds.TypefaceGuard
Открывает стандартный диалог выбора шрифта и применяет выбранную гарнитуру к выделенному фрагменту. Отличие от команды Шрифт... в том, что изменяется только гарнитура шрифта (название), а не иные атрибуты, такие как кегль или насыщенность (полужирный/нормальный).


10.5 Меню Window (Windows) / Меню Windows (Mac OS) (Окна)

New Window (Новое окно)
Команда: StdCmds.NewWindow
Охрана: StdCmds.WindowGuard
Открывает новое окно для документа в переднем окне. Новое окно имеет тот же тип, что и переднее окно. Заголовок окна заключается в скобки "(" и ")".

Cascade (Каскадом) (Windows)
Stack (Стопкой) (Mac OS)
Команда: HostMenus.Cascade
Охрана: StdCmds.WindowGuard
Располагает окна документов так, что они некоторым образом накладываются друг на друга.

Tile Horizontal (Горизонтально)
Команда: HostMenus.TileHorizontal
Охрана: StdCmds.WindowGuard
Располагает окна сверху вниз без перекрытия. Эта команда не оказывает влияния на окна с неизменяемым размером, а также на некоторые открытые окна, когда их слишком много для разумного размещения. Переднее окно размещается в самом верху.

Tile Vertical (Вертикально)
Команда: HostMenus.TileVertical
Охрана: StdCmds.WindowGuard
Размещает окна слева направо без перекрытия. Эта команда не оказывает влияния на окна с неизменяемым размером, а также на некоторые открытые окна, когда их слишком много для разумного размещения. Переднее окно становится крайним слева.

Arrange Icons (Упорядочить значки) (Windows)
Команда: HostMenus.ArrangeIcons
Охрана: StdCmds.WindowGuard
Упорядочивает значки (свернутые окна) вдоль нижнего края окна приложения.

Show Clipboard / Hide Clipboard (Показать буфер обмена / Скрыть буфер обмена) (Mac OS)
Если открыт буфер обмена, он закрывается вместе со всеми вторичными окнами. В противном случае открывается окно буфера обмена.

{окно}
Команда: HostMenus.WindowList
Охрана: отсутствует
Это список открытых окон, переднее окно в начале списка (помечено). Названия окон документов, содержимое которых было изменено, выделяются жирным шрифтом.


11 Дополнительные команды
В конфигурации меню по умолчанию показаны не все команды. Ниже приводится список модулей из подсистемы Std. Там есть много полезных команд, не все из которых представлены в меню. Подробную информацию о командах в этих модулях можно найти в документации к соответствующим модулям.

StdClocks	часы со стрелками
StdCmds	команды стандартных меню
StdCoder	кодировщик в ASCII
StdDebug	минимальный отладчик
StdFolds	складки
StdHeaders 	верхние / нижние колонтитулы
StdLinks	гиперссылки
StdLog	стандартный вывод
StdMenuTool	инструменты меню
StdStamps	временные метки
StdTables 	табличные элементы управления
StdTabViews 	закладки
StdViewSizer 	установка размера вьюшки