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 :

Initialiser une edit box avec un texte lors de sa creation


Sujet :

Interfaces Graphiques

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 41
    Points : 16
    Points
    16
    Par défaut Initialiser une edit box avec un texte lors de sa creation
    Bonjour, me voila de nouveau confronte a un souci de comprehension d'utilisation du GUIDE MATLAB :

    Je souhaiterais, lors de la creation de mon Edit box, qu'elle affiche directement la chose suivante : OFF.

    Voici mon conde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    % --- Executes during object creation, after setting all properties.
    function State0_CreateFcn(hObject, eventdata, handles) %Display the state of the channel 0
     
    set(handles.State0,'string','OFF');
     
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
     
    end
    J'ai essayer aussi de placer le "set(handles.State0,'string','OFF');" a la suite de "set(hObject,'BackgroundColor','white');" dans le IF.
    J'ai essayer value a la place de string et j'ai essayer d'enlever les guillemets autour de OFF pour toujours le meme resultat : aucun affichage

    Le message d'erreur est le suivant mais je n'en comprend pas le sens :

    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
    ??? Attempt to reference field of non-structure array.
     
    Error in ==> tester>State0_CreateFcn at 114
    set(handles.State0,'value','OFF');
     
    Error in ==> gui_mainfcn at 96
            feval(varargin{:});
     
    Error in ==> tester at 42
        gui_mainfcn(gui_State, varargin{:});
     
    Error in ==>
    @(hObject,eventdata)tester('State0_CreateFcn',hObject,eventdata,guidata(hObject))
     
     
    ??? Error using ==> struct2handle
    Error while evaluating uicontrol CreateFcn
    D'avance merci

  2. #2

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    Donc en lisant la fac, je comprends qu'il faut utiliser hObject.

    Souci, hObject est deja utilise pour initialiser le background color a white. Donc j'ai eu l'idee de definir une nouvelle variable.

    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    % --- Executes during object creation, after setting all properties.
    function State0_CreateFcn(hObject, eventdata, handles) %Display the state of the channel 0
     
    global Initialize;
    get(Initialize,'String')
    set(Initialize,'String','OFF');
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
     
    end
    J'ai essayer de remplacer string par value, d'enlever ou de mettre les guillemets sur OFF mais rien n'ya fait.
    Le message d'erreur, il n'yen a pas. MATLAB me passe juste cette ligne :
    Je ne la comprends pas.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par UgoFerrari Voir le message
    Souci, hObject est deja utilise pour initialiser le background color a white.
    Et en quoi cela t'interdit de l'utiliser toi ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    Je pensais qu'hObject etait une variable et que donc on pouvait l'utiliser que pour une seule chose

    Effectivement maintenant la chose fonctionne.

    Je poste le code pour les prochains qui se poseront la question car trop souvent je vois a la fin des sujets "super sa marche, merci salut" et BAM on reste dans l'inconnu en tant que nouvelle personne perdue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    % --- Executes during object creation, after setting all properties.
    function State0_CreateFcn(hObject, eventdata, handles) %Display the state of the channel 0
     
    set(hObject, 'String', 'OFF');
    if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
        set(hObject,'BackgroundColor','white');
     
     
    end

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par UgoFerrari Voir le message
    Je pensais qu'hObject etait une variable et que donc on pouvait l'utiliser que pour une seule chose
    Non aucun problème, tu peux utiliser une variable autant de fois que nécessaire.

  7. #7
    Membre éclairé Avatar de tubaas
    Homme Profil pro
    Acousticien
    Inscrit en
    Août 2009
    Messages
    641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Acousticien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 641
    Points : 825
    Points
    825
    Par défaut
    Citation Envoyé par Winjerome Voir le message
    Non aucun problème, tu peux utiliser une variable autant de fois que nécessaire.
    Ce qu'il faut bien comprendre c'est que hObject est le handle d'un objet graphique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(hObject,prop,value);
    ne modifie pas la valeur de la variable hObject (le handle), mais la propriété prop de l'objet graphique qu'il référence.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 41
    Points : 16
    Points
    16
    Par défaut
    Ah c'est subtil ! Merci pour ces precisions.

Discussions similaires

  1. Ajouter du texte dans une edit box
    Par raf_gug dans le forum MFC
    Réponses: 10
    Dernier message: 23/05/2013, 10h00
  2. Réponses: 18
    Dernier message: 03/07/2009, 16h27
  3. Réponses: 11
    Dernier message: 08/02/2006, 22h31
  4. Problème de "rafraichissement" dans une edit box e
    Par X-K4l1 dans le forum Windows
    Réponses: 1
    Dernier message: 23/08/2005, 11h49
  5. Réponses: 9
    Dernier message: 15/09/2004, 21h35

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