Окно подтверждения

Некоторые действия приложения требуют повторного подтверждения пользователя. Например, пользователь приложения 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> заменяет выбор Нет.