Bonjour

Je lance mon interface formée sous GUIDE. Du coup une fonction d'initialisation s'execute, dans la laquelle je voudrais récupérer une variable utilisateur. J'ai pensé à inputdlg, mais je préfère avoir une liste.

Du coup j'ai créé une figure qui met pause le reste de l'execution, tant que l'utilisateur n'a pas validé son choix.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
% Initialisation variable
study = 0;
screenpos = get(0, 'screensize');
panel = figure('Units', 'Pixels', 'Position', [(screenpos(3)-300)/2 (screenpos(4)-50)/2 300 122], 'Name', 'Variable', 'MenuBar', 'none', 'Color', [0.925 0.914 0.847], 'NumberTitle', 'off',n 'CloseRequestFcn', 'delete(gcf);', 'Resize', 'off');
uicontrol(panel, 'style', 'listbox', 'Tag', 'listEtude', 'Backgroundcolor', 'w', 'String', '1|2', 'Position', [10 32 280 60]);
uicontrol(panel, 'style', 'pushbutton', 'String', 'OK', 'Position', [210 5 80 22], 'Callback', 'study = get(findobj(''Tag'', ''listEtude''), ''Value'');uiresume(gcf)');
 
uiwait(gcf)
if study == 0
close;
return;
end
Le problème: quand je clique sur OK, je rentre dans le if mais EN PLUS le close ne se déroule pas (mon interface initalement lancée (pas "panel") s'affiche...). Double probleme en gros.
J'ai tenté au lieu du uiresume un close(gcf) mais ça plante, comportement plutot étrange...

Comment faire?
Merci