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 :

Comment sous-traiter la construction des objets


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Pierrot92320
    Homme Profil pro
    Ingénieur en retraite (électronique)
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur en retraite (électronique)
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut Comment sous-traiter la construction des objets
    Bonjour

    Soit Principal.m un programme dans lequel on ouvre une figure hFig. Ce programme doit exploiter les données venant de nombreux objets graphiques placés dans hFig. Les CallBack de ces objets sont donc (a priori) implémentés dans le fichier Principal.m puisque c'est dans ces fonctions que l'on récupère les données.

    Jusque là tout baigne. Ce qui m'ennuie c'est que le code pour construire les objets est très volumineux et j'aimerais bien le confier à une sous-fonction. Savez-vous si cela est possible ?

    Il y a peut être d'autres manières de s'y prendre ?

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Euh, la réponse est oui.
    Mais après c'est un vague pour te répondre plus précisément.

  3. #3
    Membre confirmé Avatar de Pierrot92320
    Homme Profil pro
    Ingénieur en retraite (électronique)
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur en retraite (électronique)
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    Citation Envoyé par Caro-Line Voir le message
    Euh, la réponse est oui.
    Mais après c'est un vague pour te répondre plus précisément.
    Imaginons que dans Principal.m on lance une fonction pour construire les objets graphiques. Une ligne de Principal.m est par exemple : hTable = Construction(hFig, arg1, arg2, ...). La fonction Construction construit des objets graphiques dans hFig et renvoie la matrice hTable, qui est la liste des handle des objets construits. Cette liste permet, si on veut, d'accéder aux objets à partir de Principal.m et de lire par exemple les champs Data, String, Value, etc

    Le problème est que dans chaque objet construit, on doit affecter à la propriété CallBack, le handle d'une fonction pour traiter les actions de l'opérateur sur les objets. Où dois-je implémenter ces fonctions ? Comment la fonction Principal.m sait-elle que des valeurs ont changé dans les objets ?

  4. #4
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Hum...J'avoue ne pas être très familière des callback avec handle de fonction mais je dirais a priori qu'il faut que la fonction soit dans la fonction où le Callback a été créé.

    Sinon tu peux ne pas passer par un handle mais alors la fonction appelée devra être une "vraie" fonction (c'est-à-dire pas une sous-fonction) avec son propre fichier.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fonction creation()
    h=uicontrol('callback','autrefcn(gco);');
    Dans un autre fichier autrefcn.m :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function autrefcn(handle)
    disp('coucou');

  5. #5
    Membre confirmé Avatar de Pierrot92320
    Homme Profil pro
    Ingénieur en retraite (électronique)
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur en retraite (électronique)
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    Citation Envoyé par Caro-Line Voir le message
    Hum...J'avoue ne pas être très familière des callback avec handle de fonction mais je dirais a priori qu'il faut que la fonction soit dans la fonction où le Callback a été créé.

    Sinon tu peux ne pas passer par un handle mais alors la fonction appelée devra être une "vraie" fonction (c'est-à-dire pas une sous-fonction) avec son propre fichier.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fonction creation()
    h=uicontrol('callback','autrefcn(gco);');
    Dans un autre fichier autrefcn.m :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function autrefcn(handle)
    disp('coucou');
    Merci pour ces infos, j'ignorais qu'on pouvait passer un objet comme argument. Je vais regarder ce que je peux en faire.

    Sinon sais-tu si le programme principal pourrait être une boucle infinie qui gère le menu général et qui scrute les valeurs des variables ? As-tu déjà vu ce genre d'architecture ?

  6. #6
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Citation Envoyé par Pierrot92320 Voir le message
    J'ignorais qu'on pouvait passer un objet comme argument.
    handles n'est pas un objet mais la structure contenant les identifiants des objets, il s'agit donc simplement d'une variable

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

Discussions similaires

  1. Comment faire une rotation 3D des objets
    Par dimainfo dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 19/05/2009, 19h56
  2. Réponses: 1
    Dernier message: 14/07/2008, 14h53
  3. Réponses: 11
    Dernier message: 16/10/2004, 18h14

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