www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@xregstepinput/typeText.m
function typeText(obj) %TYPETEXT % Copyright 2000-2011 The MathWorks, Inc. and Ford Global Technologies, Inc. str = get(obj.edit , 'String'); d = get(obj.edit , 'UserData'); if isempty(str) set(obj.edit , 'String' , d.currstr); else num = str2num(str); if isempty(num) w = evalin('base' , 'whos'); names = {w.name}; ind = find( strcmp( str,names ) ); if ~isempty(ind) name = names{ind}; num = evalin('base' , name); if ~isnumeric(num) || isscalar(num) || num < d.range(1) || num > d.range(end) set(obj.edit , 'String' , d.currstr); else [~,i]=min(abs(d.range-num)); d.index = i(end); if d.index == 1 set(obj.leftbutton , 'Enable' , 'off' , 'CData' , d.LeftDis); else set(obj.leftbutton , 'Enable' , 'on' , 'CData' , d.LeftEn); end if d.index == length(d.range) set(obj.rightbutton , 'Enable' , 'off' , 'CData' , d.RightDis); else set(obj.rightbutton , 'Enable' , 'on' , 'CData' , d.RightEn); end d.currstr = str; set(obj.edit , 'UserData' , d); xregcallback(d.callback) return; end else set(obj.edit , 'String' , d.currstr); end elseif isscalar(num) && num >= d.range(1) && num <= d.range(end) [~,i]=min(abs(d.range-num)); d.index = i(end); if d.index == 1 set(obj.leftbutton , 'Enable' , 'off' , 'CData' , d.LeftDis); else set(obj.leftbutton , 'Enable' , 'on' , 'CData' , d.LeftEn); end if d.index == length(d.range) set(obj.rightbutton , 'Enable' , 'off' , 'CData' , d.RightDis); else set(obj.rightbutton , 'Enable' , 'on' , 'CData' , d.RightEn); end d.currstr = str; set(obj.edit , 'UserData' , d); xregcallback(d.callback) return; else set(obj.edit , 'String' , d.currstr); end end