Bonjour à tous.

Je code en ce moment une petite interface graphique en Scilab et je rencontre un problème bizarre lorsque que je veux encapsuler dans des fonctions.
En gros, une fenêtre principale s'ouvre, avec un bouton. Lorsque l'on clique dessus, une deuxième fenêtre, contenant une liste, s'ouvre. Je cherche simplement à afficher l'élément de la liste sur lequel je clique dans la console, mais lorsque je clique sur un élément, la console affiche un vecteur vide "[]".

Voici le code (du moins la partie utile) :

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
function []=openATTList ( huibutton )
    a = figure(1);
    a.Position = [0 0 900 900];
    List=uicontrol(a,"style","listbox");
    List.Position = [0 0 700 700];
    List.String = ScenariosElemATT;
    List.Value = 1;
    List.BackgroundColor=[1 1 1];
    "userdata", [List], ...
    List.Callback = "disp(gcbo.userdata(1).String(5));";
 
    aff = uicontrol(a, "style", "text");
    aff.String = "...";
    aff.Position = [0 700 600 200];
    aff.BackgroundColor=[1 0 0];
 
    b = uicontrol(a, "style", "pushbutton");
    b.Position = [650 0 75 75];
    b.String = "Add";
    b.BackgroundColor=[1 0 0];
    "userdata", [List, aff], ...
    b.Callback = "disp(gcbo.userdata(1).Value);";
endfunction
 
function []=fenetrePrincipale(h)
    h.Position = [0 0 500 500];
    fenetreScenar = uicontrol(h, "style", "edit");
    fenetreScenar.Position = [50 300 400 200]
    ATTbutton=uicontrol(h,"style","pushbutton");
    ATTbutton.Position = [0 111 200 20];
    ATTbutton.String = "Liste ATT";
    ATTbutton.BackgroundColor=[0.9 0.9 0.9];
    ATTbutton.Callback = "openATTList";
endfunction
 
fig = figure(0);
clf;
fenetrePrincipale(fig)
Voilà, je ne comprends vraiment pas où est le problème, votre aide est plus que bienvenue.

Merci d'avance pour vos réponses.