Некоторые действия приложения требуют повторного подтверждения пользователя. Например, пользователь приложения mygui можетслучайно нажать кнопку Очистить, предназначенную для очистки осей. Следует вывести диалоговое окно, в котором пользователь укажет, действительно ли требуется очистить оси.
Диалоговое окно подтверждения создается функцией questdlg, которая в самом простом случае имеет два входных параметра - строки с текстом внутри диалогового окна и заголовком окна. Окно, создаваемое таким образом, имеет три кнопки - Yes, No и Cancel. Выбор пользователя возвращается в строковом выходном аргументе функции questdlg, его значение совпадает с надписью на кнопке.
Усовершенствуйте обработку нажатия кнопки Очистить так, чтобы соответствующие операторы выполнялись только в том случае, если пользователь нажал кнопку Yes в появляющемся диалоговом окне с текстом Очистить оси? и заголовком mygui. Используйте условный оператор if и функцию strcmp для сравнения выходного аргумента questdlg со строкой Yes (листинг 6).
Листинг 10. Программирование диалогового окна запроса
button = questdlg('Очистить оси?','mygui');
if strcmp(button, 'Yes')
% здесь размещаются все операторы,
% обрабатывающие нажатие на кнопку Очистить
end
Нажатие на кнопку Очистить приводит к появлению диалогового окна, изображенного на рис. 13. Выбор пользователя определяет дальнейшие действия приложения mygui.
Рис. 13. Диалоговое окно подтверждения
Функция questdlg позволяет управлять видом диалогового окна. Строка с названием кнопки, переданная в третьем дополнительном аргументе, определяет кнопку окна, которая может быть нажата пользователем при помощи клавиши <Enter>. Например, вызов
Button = questdlg('Очистить оси?','mygui', 'Yes');
предполагает, что в диалоговом окне нажатие клавиши <Enter> эквивалентно выбору кнопки Yes.
Число кнопок и надписи на них определяются создателем приложения, например, следующая форма обращения к функции questdlg
Button = questdlg('Очистить оси?', 'mygui','Да','Нет','Нет')
приводит к появлению диалогового окна с текстом Очистить оси?, заголовком mygui и двумя кнопками Да и Нет, причем нажатие <Enter> заменяет выбор Нет.