Main Content

オブジェクト削除コールバックの定義

オブジェクトを削除するときにコードを実行する、オブジェクト削除コールバックを作成できます。

たとえば、Figure のオブジェクト削除コールバックを作成し、その Figure を削除するときにすべての Figure を削除するかどうかを確認するダイアログを表示することができます。次のコードを新しい関数ファイルにコピーし、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

次に、Figure を 2 つ作成し、DeleteFcn プロパティに関数 figDelete を割り当てます。いずれかの Figure を削除し、表示されたダイアログで選択肢を選択します。

figure('DeleteFcn',@figDelete)
figure('DeleteFcn',@figDelete)