IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques Discussion :

Activer un pushbutton en remplissant une ou plusieurs edit box


Sujet :

Interfaces Graphiques

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2012
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Décembre 2012
    Messages : 97
    Points : 87
    Points
    87
    Par défaut Activer un pushbutton en remplissant une ou plusieurs edit box
    Bonjour à tous,

    Mon interface graphique dispose d'une quinzaine d'edit box dans lesquelles l'utilisateur renseigne des valeurs ou des mots qu'un bouton Reset permet de supprimer.

    J'ai dans l'idée de n'activer le bouton Reset que lorsqu'un champ est non vide.

    Pour le moment, j'ai réussi à désactiver par défaut le bouton Reset.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    pushbuttonReset = uicontrol(fig,...
        'style','pushbutton',...
        'Enable','off',...
        'units','normalized',...
        'position',[0.232 0.929 0.175 0.0532],...
        'string','Reset',...
        'tag','pushReset',...
        'callback',@Reset,...
        'backgroundcolor',get(fig,'color'));
    A créer une fonction qui me permet, en remplissant ma première edit box, d'activer le bouton Reset.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function EnableReset(obj,event)
     
    fig = get(obj,'parent');
    handles = guidata(fig);
     
    if ~exist(num2str(handles.Nrot),'var')
         set(handles.pushReset,'Enable','on');
    end
     
    end
    Dont j'ai renseigné le callback dans les propriétés de mon edit box.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    editNrot = uicontrol(panelPilotage,...
        'style','edit',...
        'units','normalized',...
        'position',[0.535 0.809 0.35 0.145],...
        'string','',...
        'tag','Nrot',...
        'callback',@EnableReset,...
        'backgroundcolor',[1 1 1]);
    Ca marche impec. Ma grande question, comment faire en sorte pour que ça marche pour l'ensemble des edit box ?

    Mon problème réside principalement au niveau de la condition d'existence qui doit être faite sur tous les edit box. J'avoue que je ne vois pas bien comment faire.

    D'autre part, en l'état, mon bouton Reset s'active lorsque je renseigne mon premier champ. Mais lorsque je supprime la valeur qu'il contient, mon bouton ne retourne pas à sa position désactivée par défaut.

    Dans le même ordre d'idée, comment faire pour activer un pushbutton lorsque cette fois tous les champs sont renseignés ?

    Ce ne sont là que des choix purement esthétiques j'en conviens mais si jamais vous êtes détenteur ne serait-ce que d'un début de réponse, je suis preneur

    EDIT : concernant l'activation de mon bouton reset lorsqu'un champ, n'importe lequel, est renseigné, j'ai résolu le problème avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    figHandles = findobj('edit','fig');
     
    if ~exist(figHandles,'var')
         set(handles.pushReset,'Enable','on');
    end

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    Citation Envoyé par Adjen Voir le message
    D'autre part, en l'état, mon bouton Reset s'active lorsque je renseigne mon premier champ. Mais lorsque je supprime la valeur qu'il contient, mon bouton ne retourne pas à sa position désactivée par défaut.

    EDIT : concernant l'activation de mon bouton reset lorsqu'un champ, n'importe lequel, est renseigné, j'ai résolu le problème avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    figHandles = findobj('edit','fig');
    
    if ~exist(figHandles,'var')
         set(handles.pushReset,'Enable','on');
    else
         set(handles.pushReset,'Enable','off');
    end
    Pour ce qui concerne l'activation du pushbutton reset lorsque tous les champs edits sont remplis, regarde un truc avec la fonction isempty sur chacun de tes edit

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2012
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Décembre 2012
    Messages : 97
    Points : 87
    Points
    87
    Par défaut
    Je viens de tester ça, en suivant ton conseil Dombrai. Sans succès, mon bouton ne s'active pas lorsque tous les champs sont renseignés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    handlesEdit = findobj('edit','fig');
     
    if ~isempty(handlesEdit)
         set(handles.pushReset,'Enable','on');
    end

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ce n'est pas sur les handles de objets Edit qu'il te faut appliquer cette vérification, mais sur leur contenu. Tu peux te servir de la fonction all comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    all( ~cellfun(@isempty, get(handlesEdit, 'string')) )

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    handlesEdit = findobj('edit','fig');
     
    Texte_cellule = get(handlesEdit,'String')
     
    Vecteur_champsvide = cellfun(@isempty,Texte_cellule)
     
    if Vecteur_champsvide ==0
         set(handles.pushReset,'Enable','on');
    else
         set(handles.pushReset,'Enable','off');
     
    end
    voila, il faut être bien sur de récupérer les Handles de tous les champs 'edit' dans ta variable handlesEdit

    EDIT

    Erf, trop lent...
    et moins beau

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2012
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Décembre 2012
    Messages : 97
    Points : 87
    Points
    87
    Par défaut
    Je viens d'essayer vos deux propositions, rien n'y fait. La tienne, Dombrai, n'active pas mon bouton sans générer de message d'erreur toutefois.

    Ta proposition Jerome, active mon bouton Reset dès lors qu'un champ est rempli et non tous comme j'aurais souhaité.

    J'ai regardé la fonction all et essayé un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if all(get(handlesEdit,'string'))
         set(handles.pushReset,'Enable','on');
    else
         set(handles.pushReset,'Enable','off');
    end
    Non plus.

    Mon code épuré de toute ce qui est inutile :
    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
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    function fig = InterfaceGraph()
     
    % Taille ecran %
    set(0,'Units','pixels');
    posScreen = get(0,'ScreenSize');
     
    % Taille figure %
    sz = [560 620]; 
     
    % Centrage horizontal %
    xpos = ceil((posScreen(3)-sz(1))/2); 
     
    % Centrage vertical %
    ypos = ceil((posScreen(4)-sz(2))/2);
     
     
    % Figure %
    fig = figure('units','pixels',...
        'position',[xpos ypos sz(1) sz(2)],...
        'menubar','none',...
        'name','Blabla',...
        'numbertitle','off',...
        'Resize','off',...
        'color',[0.941 0.941 0.941]);
     
     
    % Pushbutton Reset %
    pushbuttonReset = uicontrol(fig,...
        'style','pushbutton',...
        'Enable','off',...
        'units','normalized',...
        'position',[0.232 0.929 0.175 0.0532],...
        'string','Reset',...
        'tag','pushReset',...
        'backgroundcolor',get(fig,'color'));
     
     
    % Panel Pilotage %
    panelPilotage = uipanel('parent',fig,...
        'units','normalized',...
        'position',[0.0285 0.666 0.378 0.25],...
        'title','Parametres Pilotage');
     
     
    % Text et Edit Box pour Nrot %
    textNrot = uicontrol(panelPilotage,...
        'style','text',...
        'units','normalized',...
        'position',[0.0976 0.809 0.35 0.123],...
        'string','Nrot (tr/min) :',...
        'backgroundcolor',get(fig,'color'));
     
    editNrot = uicontrol(panelPilotage,...
        'style','edit',...
        'units','normalized',...
        'position',[0.535 0.809 0.35 0.145],...
        'string','',...
        'tag','Nrot',...
        'callback',@EnableReset,...
        'backgroundcolor',[1 1 1]);
     
     
    % Text et Edit Box pour Pdome %
    textPdome = uicontrol(panelPilotage,...
        'style','text',...
        'units','normalized',...
        'position',[0.0976 0.577 0.35 0.123],...
        'string','Pdome (barA) :',...
        'backgroundcolor',get(fig,'color'));
     
    editPdome = uicontrol(panelPilotage,...
        'style','edit',...
        'units','normalized',...
        'position',[0.535 0.577 0.35 0.145],...
        'string','',...
        'tag','Pdome',...
        'callback',@EnableReset,...
        'backgroundcolor',[1 1 1]);
     
     
    % Text et Edit Box pour DmoyIni %
    textDmoyIni = uicontrol(panelPilotage,...
        'style','text',...
        'units','normalized',...
        'position',[0.0976 0.345 0.35 0.123],...
        'string','Dmoy Ini (g/s) :',...
        'backgroundcolor',get(fig,'color'));
     
    editDmoyIni = uicontrol(panelPilotage,...
        'style','edit',...
        'units','normalized',...
        'position',[0.535 0.345 0.35 0.145],...
        'string','',...
        'tag','DmoyIni',...
        'callback',@EnableReset,...
        'backgroundcolor',[1 1 1]);
     
     
    % Stockage des identifiants utiles %
    handles = guihandles(fig);
    guidata(fig,handles);
     
    end
     
     
    function EnableReset(obj,event)
     
    fig = get(obj,'parent');
    handles = guidata(fig);
     
    handlesEdit = findobj('edit','fig');
     
    TxtCell = num2cell(get(handlesEdit,'string'));
     
    if all(~cellfun(@isempty,TxtCell))
        set(handles.pushReset,'Enable','on');
    else
        set(handles.pushReset,'Enable','off');
    end
     
    end

  7. #7
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    j'ai executé ton code
    le problème est que ton vecteur handlesEdit est vide

    remplace


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    handlesEdit = findobj('edit','fig');
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    handlesEdit = findobj(fig,'style','edit')
    et enleve le num2cell qui ne sert a rien

    ce 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
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    function fig = InterfaceGraph()
     
    % Taille ecran %
    set(0,'Units','pixels');
    posScreen = get(0,'ScreenSize');
     
    % Taille figure %
    sz = [560 620]; 
     
    % Centrage horizontal %
    xpos = ceil((posScreen(3)-sz(1))/2); 
     
    % Centrage vertical %
    ypos = ceil((posScreen(4)-sz(2))/2);
     
     
    % Figure %
    fig = figure('units','pixels',...
        'position',[xpos ypos sz(1) sz(2)],...
        'menubar','none',...
        'name','Blabla',...
        'numbertitle','off',...
        'Resize','off',...
        'color',[0.941 0.941 0.941]);
     
     
    % Pushbutton Reset %
    pushbuttonReset = uicontrol(fig,...
        'style','pushbutton',...
        'Enable','off',...
        'units','normalized',...
        'position',[0.232 0.929 0.175 0.0532],...
        'string','Reset',...
        'tag','pushReset',...
        'backgroundcolor',get(fig,'color'));
     
     
    % Panel Pilotage %
    panelPilotage = uipanel('parent',fig,...
        'units','normalized',...
        'position',[0.0285 0.666 0.378 0.25],...
        'title','Parametres Pilotage');
     
     
    % Text et Edit Box pour Nrot %
    textNrot = uicontrol(panelPilotage,...
        'style','text',...
        'units','normalized',...
        'position',[0.0976 0.809 0.35 0.123],...
        'string','Nrot (tr/min) :',...
        'backgroundcolor',get(fig,'color'));
     
    editNrot = uicontrol(panelPilotage,...
        'style','edit',...
        'units','normalized',...
        'position',[0.535 0.809 0.35 0.145],...
        'string','',...
        'tag','Nrot',...
        'callback',@EnableReset,...
        'backgroundcolor',[1 1 1])
     
     
    % Text et Edit Box pour Pdome %
    textPdome = uicontrol(panelPilotage,...
        'style','text',...
        'units','normalized',...
        'position',[0.0976 0.577 0.35 0.123],...
        'string','Pdome (barA) :',...
        'backgroundcolor',get(fig,'color'));
     
    editPdome = uicontrol(panelPilotage,...
        'style','edit',...
        'units','normalized',...
        'position',[0.535 0.577 0.35 0.145],...
        'string','',...
        'tag','Pdome',...
        'callback',@EnableReset,...
        'backgroundcolor',[1 1 1])
     
     
    % Text et Edit Box pour DmoyIni %
    textDmoyIni = uicontrol(panelPilotage,...
        'style','text',...
        'units','normalized',...
        'position',[0.0976 0.345 0.35 0.123],...
        'string','Dmoy Ini (g/s) :',...
        'backgroundcolor',get(fig,'color'));
     
    editDmoyIni = uicontrol(panelPilotage,...
        'style','edit',...
        'units','normalized',...
        'position',[0.535 0.345 0.35 0.145],...
        'string','',...
        'tag','DmoyIni',...
        'callback',@EnableReset,...
        'backgroundcolor',[1 1 1])
     
     
    % Stockage des identifiants utiles %
    handles = guihandles(fig);
    guidata(fig,handles);
     
    end
     
     
    function EnableReset(obj,event)
     
    fig = get(obj,'parent');
    handles = guidata(fig)
     
    handlesEdit = findobj(fig,'style','edit')
     
    TxtCell = get(handlesEdit,'string')
     
    if all(~cellfun(@isempty,TxtCell))
        set(handles.pushReset,'Enable','on');
    else
        set(handles.pushReset,'Enable','off');
    end
     
    end
    marche chez moi

    si je peux me permettre un conseil, je trouve plus simple et plus propre d'utiliser les fonction setappdata et getappdata, a la place de faire des findobj

  8. #8
    Membre régulier
    Inscrit en
    Décembre 2012
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Décembre 2012
    Messages : 97
    Points : 87
    Points
    87
    Par défaut
    Ca fonctionne impec, merci beaucoup Dombrai !

    Citation Envoyé par Dombrai Voir le message
    si je peux me permettre un conseil, je trouve plus simple et plus propre d'utiliser les fonctions setappdata et getappdata, a la place de faire des findobj
    Les seuls exemples que j'ai trouvés sur la récupération de plusieurs handles d'un même type utilisaient tous findobj. J'avoue ne pas avoir cherché plus loin après avoir trouvé mon bonheur

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Désoler de revenir sur un problème résolu mais, j'ai le même souci avec un Guide. J'ai compris que le sans le Guide on peut créer une fonction avec un nom de Callback identique que tous les objets Edit et réaliser les instructions. Cependant, avec un Guide chaque Edit est crée avec un nom de Callback différent qui est d'ailleurs le nom du Tag. Donc ce que j'arrive à faire c'est d'activer mon Pushbutton en insérant une valeur sur n’importe quel objet Edit, mais je ne vois pas comment laisser le Pushbutton désactivé tant qu'il y'a un objet Edit vide. En fait ce que je veux savoir c'est vu qu'on ne peut pas créer une fonction callback ( étant donné que les fonctions sont déjà créée avec un Guide) quel Callback faut il utiliser pour réaliser le programme.
    Je ne sais pas si je me suis fait bien comprendre, je suis débutant avec Guide Matlab.
    Merci pour votre aide.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Citation Envoyé par madjikh Voir le message
    Cependant, avec un Guide chaque Edit est crée avec un nom de Callback différent qui est d'ailleurs le nom du Tag.
    Ceci est effectivement fait de façon automatique, mais rien ne t'empêche de repasser derrière pour donner le même nom de fonction à chaque propriété Callback de tes objets Edit.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour,
    Merci pour votre réponse. J'ai donc essayé de donner le même nom de fonction à deux de mes objets Edit, ou plutôt le même nom de callback pour voir ce que ça va donner. J'ai fait un truc de ce style:
    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
     
    function edit_Callback(hObject, eventdata, handles)
    % hObject    handle to edit1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    Hauteur = str2double(get(hObject,'String'));
    setappdata(handles.figure1, 'Haut', Hauteur);
    ed1handle=get(hObject,'String');
    if ~isempty(ed1handle)
        set(handles.pushbutton1,'Enable','on');
    else
        set(handles.pushbutton1,'Enable','off');
    end
     
    % Hints: get(hObject,'String') returns contents of edit1 as text
    %        str2double(get(hObject,'String')) returns contents of edit1 as a double
     
     
    % --- Executes during object creation, after setting all properties.
    function edit_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to edit1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
     
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
     
     
     
    function edit_Callback(hObject, eventdata, handles)
    % hObject    handle to edit2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    Rayn = str2double(get(hObject,'String'));
    setappdata(handles.figure1, 'Rayon', Rayn);
    ed2handle=get(hObject,'String');
    if ~isempty(ed2handle)
        set(handles.pushbutton1,'Enable','on');
    else
        set(handles.pushbutton1,'Enable','off');
    end
     
     
    % Hints: get(hObject,'String') returns contents of edit2 as text
    %        str2double(get(hObject,'String')) returns contents of edit2 as a double
     
     
    % --- Executes during object creation, after setting all properties.
    function edit_CreateFcn(hObject, eventdata, handles)
    % hObject    handle to edit2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    empty - handles not created until after all CreateFcns called
     
    % Hint: edit controls usually have a white background on Windows.
    %       See ISPC and COMPUTER.
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
    end
    Cependant, en faisant cela j'ai des erreurs:
    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
    Error using feval
    Undefined function 'edit2_CreateFcn' for input arguments of type 'double'.
     
    Error in gui_mainfcn (line 96)
            feval(varargin{:});
     
    Error in Tension_Extrem (line 42)
        gui_mainfcn(gui_State, varargin{:});
     
    Error in
    @(hObject,eventdata)Tension_Extrem('edit2_CreateFcn',hObject,eventdata,guidata(hObject))
     
     
    Error using struct2handle
    Error while evaluating uicontrol CreateFcn
     
    Error using feval
    Undefined function 'edit1_CreateFcn' for input arguments of type 'double'.
     
    Error in gui_mainfcn (line 96)
            feval(varargin{:});
     
    Error in Tension_Extrem (line 42)
        gui_mainfcn(gui_State, varargin{:});
     
    Error in
    @(hObject,eventdata)Tension_Extrem('edit1_CreateFcn',hObject,eventdata,guidata(hObject))
     
     
    Error using struct2handle
    Error while evaluating uicontrol CreateFcn
    "edit2" est le nom du tag de mon deuxieme objet Edit. Le fait est que je ne vois comment le programme va comprendre que c'est la fonction du 1er ou du 2em Objet Edit. Donner le même nom de fonction ne revient pas à se pointer sur le même Tag ?
    Merci pour votre aide.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Il faut effectuer ce changement dans GUIDE. Dans le Property Inspector des objets Edit, tu modifies leur propriété Callback pour qu'ils utilisent la même fonction edit_Callback à la place de edit1_Callback, edit2_Callback...

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    J'ai changer les noms des callback dans le guide et dans le script pour avoir le même nom partout. Cependant j'ai des erreurs en cliquant sur mon pushbutton, c'est forcement liés à mes équations, problème que je n'avais avant de changer les noms callback. De plus étant donné que j'ai 10 objets Edit, j'aurai 10 fonctions avec le même nom, dans chaque fonction je dois mettre une instruction mais si je procède comme cela je ne pourrais pas demander à mon programme d'activer mon pushbutton que quand tout est rempli, et je ne pourrais pas non plus créée qu'une fonction callback car j'ai besoin de récupérer le contenu de chaque objet Edit pour mes équations, C'est peu être d'ailleurs pour cela que j'ai une erreur.
    Connais tu une méthode pour faire cela. Merci

  14. #14
    Membre régulier
    Inscrit en
    Décembre 2012
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Décembre 2012
    Messages : 97
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par madjikh Voir le message
    De plus étant donné que j'ai 10 objets Edit, j'aurai 10 fonctions avec le même nom, dans chaque fonction je dois mettre une instruction mais si je procède comme cela je ne pourrais pas demander à mon programme d'activer mon pushbutton que quand tout est rempli, et je ne pourrais pas non plus créée qu'une fonction callback car j'ai besoin de récupérer le contenu de chaque objet Edit pour mes équations.
    Il te faut définir une seule fonction dont le but sera d'activer le pushbutton lorsque tous les champs seront remplis et d'associer cette fonction à la propriété 'Callback' de chacune de tes editbox. Une solution m'a été proposée pour ça récemment ici. Ce n'est pas du GUIDE mais ça peut t'aiguiller un peu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Tester une ou plusieurs feuilles actives
    Par RomBon dans le forum Excel
    Réponses: 4
    Dernier message: 23/09/2013, 08h21
  2. Réponses: 7
    Dernier message: 15/02/2005, 13h55
  3. Réponses: 9
    Dernier message: 15/09/2004, 21h35
  4. [Servlet] Comment utilisé une servlet plusieurs fois ?
    Par gandalf_le_blanc dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 03/06/2004, 14h49
  5. [Optimisation] Que privilégier : une ou plusieurs requêtes ?
    Par Dimitri01 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/01/2004, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo