MATLAB: les rappels ne fonctionnent-ils que s’ils sont déclenchés dans l’ordre dans lequel ils sont définis

J’ai défini mes rappels comme suit:
 
set(handle,'callback',{@foo, handles})
function foo(hObject, event_data,handles)
...
set(handle, callback',{@bar, handles})
function bar(hObject, event_data,handles)
...
 

Meilleure réponse

  • Ce problème est dû au fait que chaque rappel est défini à la fin du corps du rappel précédent. Par conséquent, ils ne seront définis que si le rappel précédent est exécuté. La solution consiste à déplacer tous les appels de fonction ‘set’ vers surtout les définitions de callback:
     

    set(handle,'callback',{@foo, handles})
    set(handle,'callback',{@bar, handles})
    function foo(hObject, event_data,handles)
    ...
    end
    function bar(hObject, event_data,handles)
    ...
    end