Описание пользователя
Глава 2. Интерфейс пользователя
§2.6. Действия с блоками в окне подсистемы
Описываются стандартные действия, которые можно выполнять с блоками схемы.

(а)

(б)
Рис. 32. Один (а) и несколько (б)
выделенных блоков
В RDS все действия в режиме редактирования выполняются над выделенными объектами: блоками, связями и шинами (создание связей и шин и работа с ними описана в §2.7 и §2.8). Выделенный блок помечается шестью маркерами – по одному на каждой стороне занимаемой им прямоугольной области и по одному в каждом углу (рис. 32 а). Имя выделенного блока, если его отображение разрешено, выводится на инверсном фоне. Если выделено несколько блоков, маркеры отмечают границы всей занимаемой ими области (рис. 32 б). Одиночный блок обычно выделяется щелчком левой кнопкой мыши на его изображении или имени (если имя отображается). Несколько блоков можно выделить, сначала выделив один из них щелчком левой кнопки, а затем по одному добавляя к выделению остальные щелчками левой кнопки с нажатой клавишей Shift. Точно так же, удерживая клавишу Shift при щелчке левой кнопкой мыши, можно по одному снимать выделение с блоков.
Рис. 33. Выделение
прямоугольной области
Если необходимо сделать выделенной группу блоков и связей, расположенных рядом, можно выделить прямоугольную область рабочего поля. Для этого следует нажать левую кнопку мыши на свободном месте рабочего поля в одном из углов выделяемой области (например, в левом верхнем), а затем, не отпуская ее, переместить курсор в противоположный угол (например, в правый нижний). При этом на рабочем поле окна будет отображаться пунктирная рамка (рис. 33). После отпускания левой кнопки мыши все блоки и связи, изображения которых целиком попали внутрь рамки, станут выделенными. Так же, как в случае выделения одиночными щелчками левой кнопки, выделение прямоугольной области при нажатой клавише Shift добавляет блоки, попавшие внутрь рамки, к выделенным, если они не выделены, или снимает их выделение, если они были выделены ранее.
Рис. 34. Контекстное меню
блока (поля ввода)
Большинство стандартных блоков в RDS позволяют пользователю настраивать различные параметры, управляющие их внешним видом и поведением. Для блока умножения на константу можно ввести эту константу, для графика – задать цвет, толщину линии, диапазоны осей и т.п. Для вызова функции настройки параметров какого-либо конкретного блока следует щелкнуть на нем правой кнопкой мыши (если блок не был выделенным, он выделится автоматически) и выбрать в контекстном меню соответствующий пункт. Этот пункт может называться по-разному, его название обычно указывается создателем блока в общих параметрах этого блока. Чаще всего он называется «» (рис. 34), но могут быть и другие названия. Если у блока есть настройки, обычно пункт меню, вызывающий их, располагается сразу за пунктом «». Достаточно часто создатель блока разрешает вызов настроек по двойному щелчку на блоке – в этом случае соответствующий пункт контекстного меню будет выделен жирным, как на рис. 34. Для выделенного блока можно также вызвать настройки через соответствующий пункт меню «» главного меню RDS (пункт, вызывающий настройки, будет называться в контекстном и главном меню одинаково).
Не следует путать пункт меню, вызывающий настройки блока, с пунктом меню «». Последний позволяет задать общие параметры, которыми обладает каждый блок в RDS вне зависимости от его назначения: комментарий, векторную картинку, структуру переменных, функцию модели и т.п. Неправильное задание этих параметров может привести к неработоспособности блока, поэтому при их изменении следует соблюдать осторожность – при попытке изменить общие параметры стандартного блока RDS по умолчанию выводит предупреждение. Также следует помнить, что если в окне подсистемы выделено несколько блоков, вызов настроек невозможен – контекстное меню будет содержать только пункты, относящиеся ко всей выделенной группе, а не только к блоку под курсором мыши.
Вызовем настройки поля ввода, добавленного нами в схему в §2.5 – именно его контекстное меню изображено на рис. 34. Пункт меню, вызывающий их, так и называется: «». Он выделен жирным, поэтому вместо вызова контекстного меню можно просто дважды щелкнуть на поле ввода левой кнопкой мыши. Разумеется, должен быть включен режим редактирования, только в нем можно изменять настройки блоков. В открывшемся окне на вкладке «» (рис. 35) зададим ноль десятичных знаков в формате вводимого числа (мы будем вводить целые числа), а на вкладке «» (рис. 36) – шаг изменения 1. Закроем окно кнопкой «», и внешний вид поля ввода в схеме изменится – теперь в нем нет десятичной точки и двух знаков после нее.
Рис. 35. Настройки поля ввода – вкладка «»
Рис. 36. Настройки поля ввода – вкладка «»
Любые выделенные в окне подсистемы блоки и связи можно скопировать в буфер обмена, а затем вставить в другое место рабочего поля подсистемы, в другую подсистему или даже в другую схему. Взаимное расположение блоков при этом сохранится, то есть выделенный фрагмент схемы вставится в том же самом виде, в котором он был скопирован.
Добавим в нашу схему еще два поля ввода. Можно было бы добавить их с панели блоков, как мы сделали ранее, но в данном случае проще скопировать уже имеющееся в схеме поле и два раза вставить его копию. Кроме того, скопировав имеющееся поле, мы также скопируем и его настройки, и нам не придется снова задавать дробную часть и шаг изменения у вставленного поля.
Рис. 37. Результат
вставки
Выделим поле ввода, щелкнув по нему левой кнопкой мыши, а затем скопируем его в буфер обмена, нажав Ctrl + C или выбрав пункт «» в контекстном меню или в меню «» главного меню RDS. Теперь просто нажмем Ctrl + V – поверх старого поля ввода появится новое, вставленное из буфера обмена, с небольшим смещением вправо и вниз (рис. 37). Размер этого смещения определяется шагом сетки, заданным для данной подсистемы, независимо от того, включена привязка к сетке или нет. После вставки новое поле автоматически становится выделенным, а со старого выделение снимается.
Когда мы нажимаем Ctrl + V или выбираем пункт «» в меню «» главного меню RDS, мы не можем задать конкретное место рабочего поля, в котором будут размещены вставленные из буфера обмена объекты. Для точного задания положения вставляемых блоков следует использовать контекстное меню: нужно нажать правую кнопку мыши в той точке, в которой будет размещаться левый верхний угол вставляемого блока (точнее – точка привязки, но у большинства блоков точка привязки совпадает с левым верхним углом) или прямоугольной области, занимаемой блоками, если в буфер обмена было скопировано несколько блоков, и выбрать в контекстном меню пункт «». Новый блок (или блоки) при этом появятся в указанной точке.
Рис. 38. Результат
второй вставки
Вставим еще одну копию поля ввода (скопированное поле ввода все еще находится в буфере обмена, если мы не копировали туда что-либо еще), разместив ее несколько ниже имеющегося. Для этого переместим курсор мыши в точку, находящуюся ниже первого поля на одной линии с левой стороной его рамки, нажмем правую кнопку и выберем в контекстном меню пункт «». В схему добавится новое поле ввода, и его левый верхний угол будет находиться в той точке, в которой мы нажали правую кнопку мыши (вид этой части схемы будет примерно соответствовать рис. 38).
Блоки можно скопировать в буфер обмена с одновременным удалением их с рабочего поля – так можно, например, перемещать блоки из одной подсистемы в другую (см. пример в §2.11.2). Для этого используется либо пункт «» в контекстном меню или в меню «», либо сочетание клавиш Ctrl + X.
Выделенные блоки и связи можно свободно перемещать в пределах рабочего поля подсистемы, перетаскивая их с места на место левой кнопкой мыши, если в настройках одного или нескольких выделенных блоков, связей или шин не запрещено перемещение мышью. Если в параметрах подсистемы включена привязка к сетке, они будут перемещаться только по узлам этой сетки (на экране это будет выглядеть как перемещение блока рывками при плавном движении курсора мыши). В процессе перемещения вместо блока рисуется его инверсное символическое изображение либо просто инверсный прямоугольник, показывающий размеры области, занимаемой блоком. Нормальное изображение блока при этом остается на старом месте до тех пор, пока не будет отпущена левая кнопка мыши.
Переместим вниз первое вставленное нами поле ввода, которое частично перекрывает исходное. Для этого нажмем на нем левую кнопку мыши и, не отпуская ее, будем двигать курсор, пока инверсный прямоугольник, отмечающий новое положение поля ввода, не окажется между первым и третьим полями напротив сумматора (рис. 39 а). Отпустим левую кнопку мыши, и поле ввода переместится на новое место (рис. 39 б).

(а)

(б)
Рис. 39. Перемещение блока: в процессе (а) и
после отпускания кнопки мыши (б)
При необходимости, блок можно переместить, точно задав его координаты в окне параметров или выровняв его относительно других блоков.
Удалить один или несколько блоков из схемы можно выделив их, а затем нажав клавишу Delete или выбрав пункт меню «» в контекстном меню или в меню «» главного меню RDS. Если в настройках RDS запрещена отмена действий пользователя, то перед удалением блоков будет выдано предупреждение.
Если в подсистеме выделен только один блок, и для него разрешено масштабирование, размер блока можно изменить, перетаскивая мышью один из шести его маркеров выделения (рис. 40). При наведении курсора мыши на маркер выделения блока, масштабирование которого разрешено, курсор, как и всегда в Windows, принимает форму двойной стрелки (направление стрелки указывает на то, как будет изменяться размер блока при перетаскивании этого маркера). В процессе перетаскивания маркера на рабочем поле будет рисоваться инверсное схематическое изображение блока в новом размере (см. рис. 40 б).

(а)

(б)

(в)
Рис. 40. Изменение размеров блока: перетаскивание маркера выделения (а,б),
внешний вид блока после отпускания кнопки мыши (в)
Размер блоков, внешний вид которых задается векторной картинкой, прямоугольником или рисуется программно функцией модели, изменяется по-разному. Блоки с векторной картинкой (ее редактирование описано в §2.10) могут быть только увеличены и уменьшены с сохранением пропорций картинки, их изображения нельзя вытянуть или сжать только по горизонтали или по вертикали. Размеры двух других видов изображений могут быть изменены произвольно, если только в окне параметров блока не заблокировано изменение его высоты или ширины и если модель блока не будет вмешиваться в изменение размера. Например, у стандартных библиотечных полей ввода изменение высоты заблокировано: высота поля определяется выбранным в его настройках шрифтом, а ширина может быть изменена пользователем по его желанию.
Имя блока по умолчанию выводится непосредственно под его изображением. При помощи пункта «» контекстного меню блока (см. рис. 34) его можно установить в одно из двух стандартных положений: над блоком или под блоком. Кроме того, его можно перетащить левой кнопкой мыши в произвольную точку рабочего поля (рис. 41). При перемещении блока его имя всегда перемещается вместе с ним, в каком бы положении оно ни находилось.

(а)

(б)

(в)
Рис. 41. Перемещение имени выделенного блока: нажатие на имени (а),
перетаскивание (б), имя в новом положении (в)