Определение обратного вызова удаления объекта

Можно создать обратный вызов удаления объекта, который выполняет код, когда вы удаляете объект.

Например, создайте обратный вызов удаления объекта для фигуры так, чтобы, когда вы удаляете фигуру, диалоговое окно казалось спрашивающим, если вы хотите удалить все фигуры. Скопируйте следующий код в новый функциональный файл и сохраните его как figDelete.m или в текущей папке или в папке на пути поиска файлов MATLAB®.

function figDelete(~,~)
yn = questdlg('Delete all figures?',...
    'Figure Menu',...
    'Yes','No','No');
switch yn
    case 'Yes'    
        allfigs = findobj(get(groot,'Children'),'Type','figure' );      
        set(allfigs,'DeleteFcn',[]);
        delete(allfigs)
    case 'No'
        return
end
end

Затем создайте две фигуры и присвойте функцию figDelete свойствам DeleteFcn. Удалите одну из фигур и выберите опцию на диалоговом окне, которое появляется.

figure('DeleteFcn',@figDelete)
figure('DeleteFcn',@figDelete)
Была ли эта тема полезной?