Bonjour à tous,

J'ai jusqu'à présent trouvé toutes les réponses à mes questions... sauf pour celle-ci

L'objet de ma fonction et de renvoyer une structure du type:
new_projet.nom = nom;
new_projet.liste_vis = [];
new_projet.liste_ecrou = [];
new_projet.liste_bille = [];
Où seul le nom est défini (les autres champs doivent rester vide)
(ou renvoyer un champs vide si on annule )

Je cherche à ce que la fonction GUI_Nouveau_Projet.m me renvoie, après son éxecution, la valeur projet (que j'utiliserai dans une autre fonction). Mon soucis est la définition de cette valeur de projet.

Dans un preimer temps, afin d'illustrer mes propos, voilà mon code:
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
function projet = GUI_Nouveau_Projet
clc
 
% Création de l'objet Figure
    figure('units','pixels',... 
        'color',[0.831 0.816 0.784],... 
        'numbertitle','off',...
        'name','Nouveau projet',... 
        'menubar','none',... 
        'resize','off',... 
        'tag','interface');
 
% Création du texte "Nom de projet"
    uicontrol('style','text',...
        'units','pixels',...
        'fontsize',10',...
        'position',[20 80 180 20],...
        'horizontalAlignment','left',...
        'string','Nom du projet',...
        'tag','text');
 
% Création de la zone de texte 
    uicontrol('style','edit',...
        'units','pixels',...
        'fontsize',10',...
        'position',[20 60 180 20],...
        'horizontalAlignment','left',...
        'string',[],...
        'tag','edit_nom_projet');
 
% Création du bouton valider
    uicontrol('style','pushbutton',...
        'units','pixels',...
        'fontsize',10',...
        'position',[20 20 80 20],...
        'horizontalAlignment','left',...
        'string','Valider',...
        'tag','bouton_valider',...
        'callback',@valider);
 
% Création du bouton Annuler
    uicontrol('style','pushbutton',...
        'units','pixels',...
        'fontsize',10',...
        'position',[120 20 80 20],...
        'horizontalAlignment','left',...
        'string','Annuler',...
        'tag','bouton_annuler',...
        'callback','uiresume(gcbf)');
 
% Génération de la structure contenant les identifiants des objects graphiques dont la propriété Tag a été utilisée.
    data=guihandles(gcf);
 
% D'après les Tag utilisés pour les objets graphiques crées précédemment, la structure data 
% contient les champs suivant :
%   data.interface
%   data.text
%   data.edit_nom_projet
%   data.bouton_valider
%   data.bouton_annuler
 
% Initialisation de la variable représentant la valeur courante de la variable new_projet à []
% Note : new_projet est ici un champ de la structure data
    data.new_projet = [];
 
% Enregistrement de data dans les données d'application de l'objet Figure
    guidata(gcf,data)
 
    uiwait(gcf)
    projet = data.new_projet;
    close('Nouveau projet')
 
%% MISE EN PLACE DES FONCTIONS DES OBJETS %%
 
function valider(obj, event)
 
% Récupération des données stockées dans les données d'application de l'objet Figure
% contenant l'objet graphique dont l'action est exécutée (gcbf)
    data = guidata(gcbf);
 
% Récupération du texte entré dans le champs de l'objet edit_nom_projet
    nom = get(data.edit_nom_projet,'string');
 
    new_projet.nom = nom;
    new_projet.liste_vis = [];
    new_projet.liste_ecrou = [];
    new_projet.liste_bille = [];
 
% Enregistrement des données modifiées dans les données d'application de l'objet Figure
% contenant l'objet graphique dont l'action est exécutée (gcbf)
    data.new_projet = new_projet;
    guidata(gcbf,data)
 
    uiresume(gcbf)
Je rentre un nom de projet dans une zone de texte (ligne 23) que j'arrive à récupérer et mettre dans ma strucuture quand j'active le bouton_valider via la fonction valider (ligne 77 à 89)

Mon problème survient lorsque je cherche à mettre à jour la veleur de data.new_projet dans ma fonction principale
Pour mettre à jours cette variable, j'utilise guidata(gcf,data) (ligne 69) mais au final, ma fonction principale continue de me renvoyer l'initialisation de mon champs data.new_projet=[] (lignes 66 et 72)

Afin de m'aider, j'ai consulté la FAQ sur le développement efficasse des GUI ainsi que différents posts sur le passage des variables de fonction, mais sans réussir à solutionner mon problème.

Je n'ai pas de message d'erreur et possède la version 7.5.0(R2007b) de Matlab

Vous souhaitant une bonne journée, je vous remercie d'avance pour votre aide
Ursamajor