Bonjour,
Pour simplifier les choses, je prends une IHM créée avec GUIDE, contenant un static text et deux boutons.
A l'ouverture de :
Le premier démarre le timer, :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 handles.compteur = 10 ; set(handles.text1, 'String', handles.compteur) ; handles.ttimer = timer('TimerFcn',{@timefct handles}, ... 'Period', 1.0, ... 'ExecutionMode','fixedRate');
et le second l'arrête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 start(handles.ttimer) ;
Le timer incrémente le compteur et affiche sa valeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 stop(handles.ttimer) ;
Avec la fonction timefct qui se déclenche à chaque interval du Timer j'arrive bien à accéder aux objets (handles.compteur, handles.text1).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function timefct(hObject, eventdata, handles) handles.compteur = handles.compteur + 1 ; set(handles.text1, 'String', handles.compteur) ;
Cependant, j'appliques :
Code : Sélectionner tout - Visualiser dans une fenêtre à part guidata(hObject, handles);
J'ai l'erreur suivante :
c'est normal, car je n'arrive pas à passer hObject comme paramètre lorsque je crée mon timer. pour résoudre, j'ai essayé avec gcf, gcbo mais je n'arrive pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Error using ==> guidata at 89 H must be the handle to a figure or figure descendent.
Je cherche à passer hObject dans la ligne ci-dessous pour pouvoir réaliser ceci guidata(hObject, handles)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 handles.ttimer = timer('TimerFcn',{@timefct handles}, ... 'Period', 1.0, ... 'ExecutionMode','fixedRate');
Partager