Динамическое создание компонентов

Компоненты можно создавать не только, располагая их в окне на этапе проектирования интерфейса приложения, но и динамически, уже в процессе работы последнего. Для этой цели может использоваться функция 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).

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