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 :

problème de callback en programmation orientée objet.


Sujet :

Interfaces Graphiques

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut problème de callback en programmation orientée objet.
    Bonjour,

    Je réalise une application sous MATLAB en orienté objet. Elle permettra d'afficher des données sous forme graphique.

    Dans cette application j'ai créé un objet VuePrin, qui est la vue principale avec le menu permettant de charger les données.
    Via le menu, on choisis le type de données que l'on va charger, ce qui va créer un nouvel objet de type vueSta ou vueMod.

    Cependant lors du callback de mon menu, je n'arrive pas à indiquer en argument la VuePrin sur laquelle je travaille, lorsque j’exécute ce code j'obtiens une erreur du type too many imput arguments.

    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
    classdef VuePrin    
        properties
            main;
            menu;
            ssmenu;
            ssmenuSta;
            ssmenuMod;
            control;
        end
     
        methods
            function vu=VuePrin(contr)
                vu.control=contr;
                   vu.main = figure('units','pixels',...
                        'position',[25 45 1225 710],...
                        'numbertitle','off',...
                        'name','Application',...
                        'menubar','none',...
                        'userdata',1,...
                        'tag','main');
                    vu.menu=uimenu( vu.main , 'label' , ' Fichier' );
                    vu.ssmenu=uimenu( vu.menu , 'label' , 'Ouvrir' );
                    vu.ssmenuSta=uimenu( vu.ssmenu , 'label' , 'Station','callback' , {@vu.Ouverture_Sta,vu} );
                    vu.ssmenuMod=uimenu( vu.ssmenu , 'label' , 'Modèle','callback' , {@vu.Ouverture_Mod,vu}  );    
            end
     
            function Ouverture_Sta(o, ~,vu)
                s=OuvrirSta(vu.control);
                vu.vueMS=VueSta(vu,vu.control,s); 
            end
            function Ouverture_Mod(o, ~,vu)
                m=OuvrirMod(vu.control);
                vu.vueMS=VueMod(vu,vu.control,m);
            end
        end
    end
    Auriez vous une solution à mon problème?
    Merci.

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

    Comment est défini ton callback ?
    Je te conseille la lecture du 3) de Comment utiliser une fonction callback ?

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

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

    A la lecture de votre lien, je pense que le problème viens du fait que dans le callback il y a passage par valeur et non par adresse.
    Auriez vous une solution pour que via un callback de mon menu je puisse modifier un attribut de mon objet?

    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Non ton erreur est relative au nombre d'entrées que tu donnes à ton callback.
    Maintenant, si tu as aussi le problème que tu mentionnes, il ne faut pas faire passer ces données qui changent à travers la propriété Callback, mais utiliser l'un des principes exposés ici.

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Dans mon callback je donne un argument en entrée: mon objet (hobject et event etant par défaut) et ma fonction utilise 3 arguments (hobject, event et mon argument vu). C'est pour quoi je ne comprend pas le too many arguments.
    Merci

Discussions similaires

  1. problème programmation orientée objet
    Par hyuga33 dans le forum Général Python
    Réponses: 16
    Dernier message: 14/05/2010, 18h57
  2. Problème de programmation orientée objet
    Par dan65 dans le forum WinDev
    Réponses: 8
    Dernier message: 17/09/2006, 01h04
  3. [C#] Comment correctement programmer orienté objet ?
    Par ChristopheOce dans le forum C#
    Réponses: 5
    Dernier message: 06/02/2006, 13h22
  4. [POO] apprendre la programmation orientée objet
    Par Invité dans le forum Langage
    Réponses: 5
    Dernier message: 10/12/2005, 11h33
  5. [DEBUTANT] Conseil sur la programmation orienté objet
    Par etiennegaloup dans le forum Langage
    Réponses: 7
    Dernier message: 27/05/2005, 12h59

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