gusucode.com > 信号处理工具箱 - signal源码程序 > signal\signal\siggui\@fdax\delete.m

    function delete(obj)

%   Author: T. Krauss
%   Copyright (c) 1988-98 by The MathWorks, Inc.
%   $Revision: 1.1 $

obj = struct(obj);
for i = 1:length(obj)
    fig = get(obj(i).h,'parent');
    ud = get(fig,'userdata');
    
    ind = find(obj(i).h == [ud.Objects.fdax.h]);
    if isempty(ind)
        error('Not a valid object')
    end
        
    objud = get(obj(i).h,'userdata');
    
    % need to delete any lines which are children of this axes
    lines = ud.Objects.fdline.h;
    if length(lines)>1
        lines = [lines{:}];
    end
    for j = 1:length(lines)
        if get(lines(j),'parent') == obj(i).h
            delete(ud.Objects.fdline(j))
        end
    end
    ud = get(fig,'userdata');
    
    delete(obj(i).h)
    
    ud.Objects.fdax(ind) = [];
    
    set(fig,'userdata',ud)
    
    % now adjust enable of ud.ht.overlay button of filtdes:
    if length(ud.Objects.fdax)>0
        allAxes = [ud.Objects.fdax.h];
        enable = 'off';
        for k = 1:length(allAxes)
            tempud = get(allAxes(k),'userdata');
            if strcmp(tempud.overlay,'on')
                enable = 'on';
                break
            end
        end
    else
        enable = 'off';
    end
    set(ud.ht.overlay,'enable',enable)
end
if ~isempty(obj)
    setpos(ud.Objects.fdax,fig)
end