www.gusucode.com > mbcguitools 工具箱 matlab 源码程序 > mbcguitools/@xregvectorinput/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' , prettify(d.vector));
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};
         new_value = evalin('base' , name);
         if ~isnumeric(new_value) || sum(size(new_value) > 1) > 1
            set(obj.edit , 'String' , prettify(d.vector(:)'));
         else
            set(obj.edit , 'String' , prettify(new_value(:)'));
            d.vector = new_value;
            set(obj.edit , 'UserData' , d);
            xregcallback(d.callback)
            return;
         end
      else
         set(obj.edit , 'String' , prettify(d.vector(:)'));
      end
   elseif sum(size(num) > 1) <= 1
      d.vector = num;
      set(obj.edit , 'UserData' , d);
      set(obj.edit , 'String' , prettify(d.vector));
      xregcallback(d.callback)
      return;
   else
      set(obj.edit , 'String' , d.currstr);
   end
end