Динамическое создание компонентов
Компоненты можно создавать не только, располагая их в окне на этапе проектирования интерфейса приложения, но и динамически, уже в процессе работы последнего. Для этой цели может использоваться функция uicontrol, синтаксис обращения к которой имеет вид:
hcomp=uicontrol(hf,'Style','тип_компонента','свойство1',
'значение1','свойство2','значение2',...)
где hf – указатель на объект, внутри которого будет создаваться компонент (если данный параметр отсутствует, то компонент создается в текущем графическом объекте); тип_компонента определяет, к какому классу принадлежит создаваемый компонент (возможные значения: 'text' – метка (статический текст), 'edit' – окно редактирования, 'pushbutton' – кнопка, 'radiobutton' – переключатель, 'checkbox' – флажок, 'listbox' – список); компонент создается со значениями свойств, указанных в функции uicontrol и со значениями, принимаемыми по умолчанию.
Приведем ниже пример программы создания компонентов в окне, после выполнения которой формируется окно, показанное на рис. 2.44.1.
Рис. 2.44.1. Пример динамически созданных компонентов.
% Создаем окно
h1=figure;
% Создаем кнопку
hbt1=uicontrol(h1,'Style','pushbutton','String',...
'OK','Position',[20,30,25,35]);
% Создаем список
hlist1=uicontrol('Style','listbox','String',...
{'Красный','Желтый','Зеленый'},'Position',...
[150,150,100,190]);
Создание меню
Для подключения меню к приложению требуется вызвать редактор меню с помощью кнопки на панели инструментов. Окно этого редактора меню представлено на рис. 2.45.1.
После нажатия в нем на кнопку перейдем к следующему окну, показанному на рис. 2.45.2.
Для каждого пункта меню можно определить следующие свойства: Label – название пункта меню, Tag – имя компоненты (или объекта) в программе (по нему можно будет обращаться к данному элементу меню в программе, Accelerator – это свойство, определяющее комбинации клавиш
Рис. 2.45.1. Окно редактора меню.
быстрого вызова для доступа к данному пункту меню; Separator above this item – вставляет строку-разделитель перед данным пунктом меню; Check mark this item – помечает данную команду галочкой (из прогграммы доступ к данной возможности пункта меню осуществляется посредством свойства check, которое может принимать два значения ('on' и 'off')); Enable this item – доступность данного пункта меню (из программы доступ к данной возможности пункта меню осуществляется посредством свойства enable, которое может принимать два значения ('on' и 'off'); Callback – определяет функцию-обработчик события выбора данного пункта меню (щелкнув по кнопке View, можно перейти к ее тексту и вставить необходимый программный код, который будет выполняться при выборе пункта меню).
Кнопка More Properties открывает инспектор всех свойств редактируемого пункта меню (рис. 2.45.3).
В заключение укажем читателю на целесообразность самостоятельной модификации рассмотренных ранее приложений в части добавления в них несложных меню.