Bonjour a tous,

J'ai un menu avec plusieurs channels.

Dans chaque channel, il y a un uibuttongroup rassemblant deux radiobutton.
Lorsque je clique sur l'un ou l'autre de ces radiobutton je dois faire apparaitre un certains nombres de text box et d'edit box.

Pour le channel 0, sa marche mais pas pour les autres (j'en ai 16 au total). Ce que je n'explique pas car j'ai utiliser des copier/coller, les lignes de code sont donc les memes, la logique voudrait que le fonctionnement soi le meme ?

Voici mon code (du moins pour 2 uibuttongroup de 2 channels) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
function Interval_of_Frequency_used_0_SelectionChangeFcn(hObject, eventdata, handles) %Here, the user must choose the good interval corresponding to the channel 0
global MHz0;
global kHz0;
if hObject == handles.MHz0 
    MHz0 = 1;
    kHz0 = 0;
    set(handles.Load_0, 'Visible', 'on');
    set(handles.Frequency_text_0, 'Visible', 'on');
    set(handles.kHz_0, 'Visible', 'on');
    set(handles.V0, 'Visible', 'on');
    set(handles.Change0, 'Visible', 'on');
    set(handles.Choose_Voltage_0, 'Visible', 'on');
    set(handles.Choose_Frequency_0, 'Visible', 'on');
    set(handles.State0, 'String', 'OFF');
    set(handles.checkbox0, 'Value', 0);
    set(handles.checkbox0, 'Visible', 'off');
    set(handles.Choose_Frequency_0, 'String', '');
    set(handles.Choose_Voltage_0, 'String', '');
elseif hObject == handles.kHz0
    MHz0 = 0;
    kHz0 = 1;
    set(handles.Load_0, 'Visible', 'on');
    set(handles.Frequency_text_0, 'Visible', 'on');
    set(handles.kHz_0, 'Visible', 'on');
    set(handles.V0, 'Visible', 'on');
    set(handles.Change0, 'Visible', 'on');
    set(handles.Choose_Voltage_0, 'Visible', 'on');
    set(handles.Choose_Frequency_0, 'Visible', 'on');
    set(handles.State0, 'String', 'OFF');
    set(handles.checkbox0, 'Value', 0);
    set(handles.checkbox0, 'Visible', 'off');
    set(handles.Choose_Frequency_0, 'String', '');
    set(handles.Choose_Voltage_0, 'String', '');
else
    MHz0 = 0;
    kHz0 = 0;
end
 
 
function Interval_of_Frequency_used_1_SelectionChangeFcn(hObject, eventdata, handles) %Here, the user must choose the good interval corresponding to the channel 1
global MHz1;
global kHz1;
if hObject == handles.MHz1 
    MHz1 = 1;
    kHz1 = 0;
    set(handles.Load_1, 'Visible', 'on');
    set(handles.Frequency_text_1, 'Visible', 'on');
    set(handles.kHz_1, 'Visible', 'on');
    set(handles.V1, 'Visible', 'on');
    set(handles.Change1, 'Visible', 'on');
    set(handles.Choose_Voltage_1, 'Visible', 'on');
    set(handles.Choose_Frequency_1, 'Visible', 'on');
    set(handles.State1, 'String', 'OFF');
    set(handles.checkbox1, 'Value', 0);
    set(handles.checkbox1, 'Visible', 'off');
    set(handles.Choose_Frequency_1, 'String', '');
    set(handles.Choose_Voltage_1, 'String', '');
elseif hObject == handles.kHz1
    MHz1 = 0;
    kHz1 = 1;
    set(handles.Load_1, 'Visible', 'on');
    set(handles.Frequency_text_1, 'Visible', 'on');
    set(handles.kHz_1, 'Visible', 'on');
    set(handles.V1, 'Visible', 'on');
    set(handles.Change1, 'Visible', 'on');
    set(handles.Choose_Voltage_1, 'Visible', 'on');
    set(handles.Choose_Frequency_1, 'Visible', 'on');
    set(handles.State1, 'String', 'OFF');
    set(handles.checkbox1, 'Value', 0);
    set(handles.checkbox1, 'Visible', 'off');
    set(handles.Choose_Frequency_1, 'String', '');
    set(handles.Choose_Voltage_1, 'String', '');
else
    MHz1 = 0;
    kHz1 = 0;
end
Donc le 0 fonctionne mais pas le 1.

Voici le message d'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
??? Invalid handle object.
 
Error in ==> uitools.uibuttongroup.childAddedCbk>manageButtons at 59
oldctrl = get(hgroup, 'OldSelectedObject');
 
??? Error while evaluating uicontrol Callback
Lorsque je clique sur le lien du message d'erreur, je suis emmene sur un autre code dont je ne comprends pas grand chose.

D'avance merci