GUIDE callback question

4 views (last 30 days)
Leor Greenberger
Leor Greenberger on 28 Sep 2011
Answered: Alberto on 26 Oct 2016
I have a button group (tag: DBI_ButtonGroup) with two radio buttons (tag1: radio_DBI tag2: radio_non_DBI)
My selctionchangefcn callback is as follows:
% --- Executes when selected object is changed in DBI_ButtonGroup.
function DBI_ButtonGroup_SelectionChangeFcn(hObject, eventdata, handles)
% hObject handle to the selected object in DBI_ButtonGroup
% eventdata structure with the following fields (see UIBUTTONGROUP)
% EventName: string 'SelectionChanged' (read only)
% OldValue: handle of the previously selected object or empty if none was selected
% NewValue: handle of the currently selected object
% handles structure with handles and user data (see GUIDATA)
switch get(eventdata.NewValue,'Tag') % Get Tag of selected object.
case 'radio_DBI'
set(handles.no_ADC,'Enable','Off')
otherwise
set(handles.no_ADC,'Enable','On')
end
So I basically want to change the tag called no_ADC (which is an edit text control, to Enable = off or Enable = on based on the radio button selection. When I run this, however, MATLAB spits out the following error:
Error using handle.handle/get
Invalid or deleted object.
Error in uitools.uibuttongroup/childAddedCbk>manageButtons (line 59)
oldctrl = get(hgroup, 'OldSelectedObject');
Error while evaluating uicontrol Callback
I don't understand what is wrong.
  4 Comments
Leor Greenberger
Leor Greenberger on 28 Sep 2011
I am not sure what that function even does. First attempt at GUIDE.

Sign in to comment.

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 28 Sep 2011
The code is correct. The problem seems to be caused by operator error when modifying the GUI elements. Root cause is unknown. See comments.
  8 Comments
Fangjun Jiang
Fangjun Jiang on 28 Sep 2011
Notice the function definition function DBI_ButtonGroup_SelectionChangeFcn(hObject, eventdata, handles)? The name is associated with the tag name of the GUI elements. If you change the tag name in GUIDE, the function name is supposed to be changed automatically. I mean "suppsed to". I had experience that for unknown reason, they were un-synchronized and I have to do a lot to recover it back. But I can't re-produce that procedure to prove that something is wrong with GUIDE. So, just be careful, save often and back up often.

Sign in to comment.

More Answers (1)

Alberto
Alberto on 26 Oct 2016
I think I found the solution. Just left-click on buttongrup panel and Bring to front, also the same with all radiobuttons inside the buttongrup panel. That worked for me.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!