Remove UI Control edit box referenced with handles
    6 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
Hi,
I have created an UI control edit boxes and are created and stored in handles for eg
for i=1:20
handles.sensname(i) = uicontrol('style', 'edit','Position',  [95, b-(i-1)*20, 180, 17],'BackgroundColor',[1 1 1]);
end
Now after creating this, i want to delete the ui control editboxes. What i tried is
        for i=1:20
            delete(handles.sensname(i));
        end
But I am getting the error 'Root object may not be deleted'. i know it may be that handle values cannot be deleted, then how to solve my problem?
Appreciate any idea to solve this
Karthik
0 commentaires
Réponse acceptée
  Walter Roberson
      
      
 le 27 Juin 2012
        Is it possible that your code is not quite as shown, and that you initialize handles.sensname as an array with more elements than you store handles for? If so then the extra entries would be 0 and you would get the error you get.
Suggested replacement code (no loop needed)
delete( handles.sensname(handles.sensname > 0) );
5 commentaires
  Walter Roberson
      
      
 le 27 Juin 2012
				More efficient would be
delete(handles.sensname(1:20));
with no loop (just the one line.)
Plus de réponses (1)
  Sean de Wolski
      
      
 le 27 Juin 2012
        That means that handles.sensname(i) is returning a 0, the handle to the root object.
It it kind of hard to tell you what is broken with it, but perhaps you could just check for zeros first.
for ii = 1:10;
 if logical(handles.sensname(ii))
   delete(handles.sensname(ii));
 end
end
More Note also that if I run those two lines of code back2back I don't get the error:
figure;
for i=1:20
  handles.sensname(i) = uicontrol('style', 'edit','Position',  [95, pi-(i-1)*20, 180, 17],'BackgroundColor',[1 1 1]);
end
for i=1:20
  delete(handles.sensname(i));
end
5 commentaires
  Walter Roberson
      
      
 le 27 Juin 2012
				Any handle graphics object can be deleted _except_ for the root object (0). This includes uicontrol() and text() and plots and surf() and so on.
Voir également
Catégories
				En savoir plus sur Interactive Control and Callbacks dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



