Текущий раздел:

Описания RDS

Описание пользователя

Глава 2. Интерфейс пользователя

§2.16. Создание и редактирование библиотек и вкладок панели блоков

§2.16.2. Добавление блоков в библиотеку

# Описание пользователя

## Глава 2. Интерфейс пользователя

### §2.16. Создание и редактирование библиотек и вкладок панели блоков

#### §2.16.2. Добавление блоков в библиотеку

Описывается создание новых библиотек и вкладок панели блоков и добавление в библиотеки блоков из загруженной схемы.

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

В отличие от панели блоков, библиотека блоков в RDS исходно пуста. Обычно в нее добавляют редко используемые экспериментальные или созданные пользователем блоки. Чтобы не сваливать все эти блоки в одну кучу, внутри библиотеки блоков, как правило, создают вложенные папки («библиотеки» в терминах RDS), объединяющие блоки одинакового назначения или предназначенные для какой-либо конкретной задачи. Вложенность папок библиотек может быть любой (в отличие от панели блоков, в которой допускается только один уровень вложенности: папки-вкладки и блоки в них). Поскольку каждая папка библиотеки физически является папкой файловой системы, их имена должны удовлетворять требованиям к именам файлов Windows, то есть не должны содержать символов, запрещенных для имен файлов (прямая и обратная косая черта, двоеточие, вопросительный знак, звездочка, знак кавычки, знаки «больше» и «меньше», вертикальная черта).

Проще всего создать новую папку библиотеки, выбрав в дереве в левой части окна элемент «библиотеки» (или уже существующую папку, внутри которой планируется создать новую), щелкнув на свободном месте панели списка блоков и папок (возможно, еще пустой) правой кнопкой мыши и выбрав в контекстном меню пункт «создать | библиотеку» (рис. 258 а). Если изменения в библиотеках заблокированы (кнопка с изображением замка нажата, как на рис. 258 а), RDS спросит, разрешить ли редактирование библиотек. Если разрешить редактирование, в списке появится новая папка с именем «LibraryN», где N – число, подобранное так, чтобы имя папки было уникальным (в данном случае, созданная библиотека будет называться «Library1», рис. 258 б). При желании, можно сразу же дать ей другое имя, щелкнув на ней правой кнопкой мыши, выбрав в контекстном меню пункт «переименовать» и введя новое имя (имя должно быть уникальным в открытой папке). Теперь можно войти внутрь нее двойным щелчком (в заголовке окна библиотеки отобразится имя открытой папки).

(а)

(б)

Рис. 258. Создание папки библиотеки: выбор пункта меню (а) и созданная библиотека (б)

Добавим в эту библиотеку какой-либо блок – например, изображение манипулятора из схемы «Hand.rds», создание которого было описано в §2.10.12. Для этого сначала следует загрузить эту схему в RDS. Поскольку при загрузке схемы RDS восстанавливает состояние открытых окон на момент ее сохранения, а при сохранении этой схемы окно библиотеки не было открыто, окно с созданной папкой библиотеки закроется и изменения библиотек снова заблокируются. Нужно снова открыть это окно (пункт меню «окна | окно библиотеки», разрешить изменения библиотек (отпустить нажатую кнопку с замком на верхней панели) и выбрать в окне созданную библиотеку, щелкнув на ее имени в элементе «библиотеки» дерева папок слева. После этого следует разместить окно библиотеки и окно подсистемы с блоком манипулятора рядом, чтобы было удобнее копировать блок.

Копировать блок из окна подсистемы в библиотеку можно двумя способами. Если оба окна небольшие и их легко разместить рядом, можно перетащить блок в библиотеку: для этого нужно нажать на его изображении в окне подсистемы правую кнопку мыши, переместить курсор, не отпуская кнопку, на панель списка блоков окна библиотеки (вместе с курсором будет перемещаться квадрат, символизирующий перетаскиваемый блок) и отпустить кнопку. При этом важно перетащить блок именно правой кнопкой – левой можно перетаскивать его только внутри окна подсистемы. Если же окна большие и перекрывают друг друга, удобнее вставить блок в библиотеку через буфер обмена (рис. 259): для этого нужно выделить его в окне подсистемы левой кнопкой, затем скопировать его в буфер пунктом контекстного меню «копировать» или нажатием Ctrl + C. После этого следует вытащить окно библиотеки на передний план, например, щелкнув по нему левой кнопкой мыши (лучше щелкнуть по панели списка блоков, чтобы случайно не попасть в какую-нибудь кнопку и не выбрать другую библиотеку в дереве папок), и вставить блок из буфера пунктом контекстного меню «вставить» или нажатием Ctrl + V.

Рис. 259. Копирование блока в библиотеку через буфер обмена

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

Для изменения указанных параметров следует дважды щелкнуть на блоке в библиотеке левой кнопкой мыши или выбрать пункт его контекстного меню «параметры» – откроется окно параметров библиотечного блока, изображенное на рис. 260.

Рис. 260. Окно параметров блока библиотеки – вкладка «общие»

В верхней части вкладки «общие» этого окна находится поле ввода для имени блока в библиотеке, непосредственно под которым отображается полный путь к файлу, в данном случае, с расширением «.blk», в котором находится сам блок (это полезно знать при редактировании библиотек средствами Windows вместо окна библиотеки RDS, см. §2.16.5). Имя блока в библиотеке всегда совпадает с именем файла, в котором он хранится, поэтому на имя блока накладываются те же ограничения, что и на имя файла в Windows: оно не должно содержать запрещенных символов (прямой и обратной косой черты, двоеточия, вопросительного знака, звездочки, знака кавычки, знаков «больше» и «меньше», вертикальной черты). При изменении имени в окне параметров блока файл блока автоматически переименовывается вместе со всеми вспомогательными файлами, содержащими его иконки, всплывающую подсказку и т.д.

В средней части вкладки находятся две панели, на которых можно задать для блока крупный (32×32 точки экрана) и мелкий (16×16 точек) значки. Обычно достаточно задать только мелкий значок: во-первых, крупные значки используются только в единственном стиле списка блоков в библиотеке, а на панели блоков не используются вообще, и, во-вторых, при отсутствии крупного значка RDS автоматически масштабирует мелкий. Если предполагается, что пользователь будет работать с включенным стилем списка «крупные значки», крупный значок лучше задать, поскольку масштабирование мелкого не всегда выглядит аккуратно. Если же работа в этом стиле не предполагается, о крупном значке можно забыть, и задать только мелкий.

Значок для блока можно либо загрузить из файла кнопкой «загрузить» (поддерживаются форматы «.bmp» и «.ico»), либо вставить из буфера обмена кнопкой «вставить». Кнопка «очистить» стирает значок – блок будет изображаться пустым квадратом. Если в качестве значка используется растровый рисунок в формате BMP, цвет его левого нижнего угла всегда считается прозрачным – при рисовании списка блоков этот цвет будет заменен на цвет панели списка. В RDS нет встроенного редактора растровых рисунков, поэтому для задания значка следует использовать любой внешний редактор – например, стандартный для Windows редактор «Paint».

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

На вкладке «дополнительно» (рис. 261) располагаются панели «справка по блоку», «пример схемы для блока» и «показывать в конфигурациях библиотек».

Рис. 261. Окно параметров блока библиотеки – вкладка «дополнительно»

В верхней части вкладки располагается панель «справка по блоку» с двумя полями ввода: «файл» и «тема». На этой панели можно указать файл справки, который будет вызываться для данного блока, если выделить его в окне библиотеки или нажать его кнопку на панели блоков, а затем нажать клавишу F1). Имя вводится вручную или выбирается в стандартном диалоге открытия файла, который вызывается кнопкой «…». Путь к файлу запоминается относительно стандартной папки документации RDS. Если в качестве файла справки используется файл формата html или специальный файл справки RDS формата «.ui», можно также указать имя темы внутри этого файла. Поддерживаются следующие стандартные форматы файлов:

- Hypertext Markup Language (HTML, расширения файлов «.html», «.htm»). Для этого формата можно в качестве имени темы указать «якорь» (anchor) внутри файла.
- Portable Document Format (расширения файлов «.pdf»).
- Обычный текстовый файл (расширения файлов «.txt»).
- OpenDocument Text (расширения файлов «.odt»).
- Файлы справки Windows (расширения файлов «.hlp», «.chm»).
- Portable Network Graphics (расширения файлов «.png»).
- Схемы RDS (расширения файлов «.rds»).

Кроме указанных форматов, в качестве файла справки можно использовать специальный файл справки RDS формата «.ui», представляющий собой набор ссылок на файлы стандартных форматов. Этот файл похож на ini-файлы Windows и имеет следующую структуру:

      [Main]
      File=имя_файла_главной_справки
      Menu=имя_в_меню_справки_RDS
      Anchors=наличие_тем_в_файлах_1_или_0
      [Topics]
      имя_темы_1=имя_файла_1|якорь_в_файле_1
      имя_темы_2=имя_файла_2
      …

Файл состоит из двух секций: «[Main]» и «[Topics]». В секции «[Main]» записываются параметры всего файла справки:

- Параметры «File» и «Menu» – имя главного файла справки и пункт меню для него соответственно. Путь к главному файлу справки считается заданным относительно папки файла «.ui». Эти параметры используются для добавления новых пунктов в подменю справки «?» главного меню RDS. При запуске RDS просматривает стандартную папку документации и ее вложенные папки, находит там все файлы с расширением «.ui», считывает из каждого секцию «[Main]» и добавляет в подменю справки пункты, соответствующие указанным там файлам. Например, для главной справки RDS в файле «RdsHelp.ui», находящемся в подпапке «RDSHelp» внутри папки документации, указан главный файл «index.htm» и пункт меню «Описания RDS». Это значит, что в подменю «?» будет присутствовать пункт с указанным именем, при выборе которого откроется файл «RDSHelp\index.htm» из папки документации. В файлах «.ui» справок блоков эти параметры можно не указывать.
- Параметр «Anchors» указывает на наличие или отсутствие подтем («якорей») в именах справочных файлов, указанных ниже в секции «[Topics]». Чтобы в именах файлов после знака «|» (вертикальная черта) можно было указывать имя подтемы в этом файле (на данный момент поддерживается только для файлов html и схем RDS, где в качестве имени подтемы указываются дополнительные параметры командной строки запуска), необходимо записать «Anchors=1». При «Anchors=0» имена подтем использовать нельзя.

В секции «[Topics]» в каждой строке записывается имя темы справки (так, как оно будет указано в окне параметров блока библиотеки), после которого ставится знак равенства, за которым следует либо имя файла справки для этой темы (путь указывается относительно папки файла «.ui»), либо имя файла справки, знак вертикальной черты («|»), и имя подтемы – например, «якоря» html в этом файле (пробелы до и после вертикальной черты недопустимы). Используя «якоря», можно разместить справки к нескольким блокам в одном файле html.

Ниже располагается панель «пример схемы для блока», на которой можно указать файл схемы, заранее подготовленный для демонстрации подключения данного блока и работы с ним. Такая схема-пример, если она указана, вызывается из контекстного меню к самому блоку в окне библиотеки или к его кнопке на панели блоков. В поле ввода «файл» на панели «пример схемы для блока» можно указать либо непосредственно имя файла схемы-примера, либо имя файла «.ui» уже описанного выше формата, в котором каждая тема представляет собой один пример схемы. Имя темы в этом случае вводится в поле ввода «тема» ниже. Путь к файлу примера запоминается относительно стандартной папки примеров RDS.

В рассматриваемом здесь примере справка к добавленному в библиотеку блоку и демонстрационная схема для него создаваться не будут.

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

Изменим параметры добавленного в библиотеку блока-манипулятора так, чтобы пользователю было легко узнать его среди других блоков. Заменим в окне его параметров малоинформативное имя «Block1» на более понятное «Hand» – теперь при вставке этого блока в подсистему он будет последовательно получать имена «Hand1», «Hand2» и т.д. Зададим для него мелкий значок (его придется нарисовать отдельно в каком-либо редакторе растровых рисунков) и введем текст всплывающей подсказки (рис. 262).

Рис. 262. Измененные параметры блока

Закроем окно кнопкой «OK». Теперь в окне библиотеки у блока появился значок (рис. 263), а при наведении на него курсора мыши появляется всплывающая подсказка.

Рис. 263. Блок с измененными параметрами в библиотеке

Если какой-либо блок уже сохранен в файл, его можно вставить в нужную папку библиотеки, выбрав в главном меню RDS пункт «редактирование | создать | копировать блок из файла» (этот же пункт есть и в контекстном меню панели списка блоков). Блок будет скопирован в библиотеку без значков и всплывающей подсказки, их придется задавать описанным выше образом.

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

Параметры можно задавать не только для блоков в библиотеках, но и для самих папок библиотек (поскольку двойной щелчок на папке открывает ее, окно параметров для библиотеки можно вызвать только через контекстное меню или через пункт «редактирование | параметры» главного меню RDS). Папка библиотеки тоже может иметь собственный нестандартный значок и всплывающую подсказку, в которой, как правило, поясняется общее назначение блоков в этой папке.

Иногда возникает необходимость заменить уже имеющийся в библиотеке пользовательский блок на его новую или измененную версию. В RDS для этого предусмотрена специальная функция, позволяющая заменить блок в библиотеке на блок, содержащийся в буфере обмена. Для этого следует:

1. Поместить новую версию блока в какую-либо подсистему схемы (или вставить туда библиотечный блок и внести необходимые изменения в его параметры).
2. Скопировать этот блок в буфер обмена.
3. Открыть окно библиотеки и выбрать в нем папку, в которой находится блок, который нужно заменить.
4. Выделить этот блок и выбрать в его контекстном меню пункт «заменить блок».

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

Следует помнить, что подсистемы в RDS тоже являются блоками и, поэтому, тоже могут быть добавлены в библиотеки, как и любые другие блоки.