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

WinDev Discussion :

Tableau d'objet accès aux méthodes [WD17]


Sujet :

WinDev

  1. #1
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 620
    Points : 223
    Points
    223
    Par défaut Tableau d'objet accès aux méthodes
    Bonjour,

    J'ai une classe "Document" et je souhaite créer un tableau de "Document".

    J'ai fait ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            gtabDocuments[gnNbDocument] = allouer un Document
    	gtabDocuments[gnNbDocument]:p_sMRZsss(AX_PrDoc..NomComplet)
    gnNbDocument vaut 1.

    j'ai comme message d'erreur :
    p_sMRZ procédure inconnue
    Ces méthodes existent dans la classe document :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    PROCEDURE p_sMRZ(objPRDoc = "")
     
    POUR i = 1000 _A_ 20000
    	SI {objPRDoc, indChamp}>>field(i) <> "" ALORS
    		Trace(i + TAB + TAB + {objPRDoc, indChamp}>>field(i))
    	FIN
    FIN
    Pourtant quand je tape le nom de ma classe et les ':' il me propose bien la méthode 'p_sMRZ'.

    Si quelqu'un a une idée ?

    Merci bien.

  2. #2
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    Lut,
    Ben tu dois pouvoir utiliser seulement le "." et pas le ":" entre ton tableau et ta méthode si ta méthode est publique...

    j'imagine que tu as essayé ça pour vérifier que ton objet document passe bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    unDoc est un Document dynamique
    unDoc=allouer un Document
    unDoc=gtabDocuments[gnNbDocument]
    unDoc.p_sMRZsss(AX_PrDoc..NomComplet)

  3. #3
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 620
    Points : 223
    Points
    223
    Par défaut
    Bonjour,

    Je ne sais pas combien d'instance de ma classe je vais avoir.
    C'est pour cela que je souhaite créer un tableau d'objet.

    Mais je ne vois pas comment le mettre en place.

    Merci

  4. #4
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Bonjour
    ton message d'erreur ne vient pas de l'allocation mais de la ligne marquée en deuxième position ?

    Comment déclares-tu gtabDocuments ?

    Gancau

  5. #5
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 620
    Points : 223
    Points
    223
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtabDocuments 		est un tableau de Document

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 275
    Points : 12 959
    Points
    12 959
    Par défaut
    Bonjour,
    Peite question: s'il s'agit d'un tableau d'objets (et non d'un tableau d'objets dynamiques), pourquoi allouer un objet avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     gtabDocuments[gnNbDocument] = allouer un Document
    Le fait de dimensionner le tableau instancie directement les objets qu'il contient.

    Sinon pour accéder à uné méthode dans un tableau d'objet, cette syntaxe fonctionne chez moi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    :m_tabListeTreso[nIndice]:Import(sSection)
    Tatayo.

  7. #7
    Membre actif Avatar de thierrybatlle
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2005
    Messages : 620
    Points : 223
    Points
    223
    Par défaut
    J'ai compris mon problème.

    Dans ma classe j'ai déclaré des membres, dont : mg_sMRZ est une chaîne
    Ensuite j'ai créé des propriétés de façon automatique avec Windev et non une procédure.

    Voici mon code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            gnNbDocument ++
    	TableauAjoute(gtabDocuments, gclMonDocument)
    //	gtabDocuments[gnNbDocument] = allouer un Document
    	gtabDocuments[gnNbDocument]:TestMrz(AX_PrDoc..NomComplet)
     
    	Trace(gtabDocuments[gnNbDocument]:p_sMRZ)
    Dois-je mettre le code en commentaire, est-ce que mon objet est bien alloué ?

    Merci bien.

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 275
    Points : 12 959
    Points
    12 959
    Par défaut
    C'est facile à savoir: mets une trace dans le constructeur, et tu verras bien quand ce dernier est appelé.

    Tatayo.

  9. #9
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    En fait il y a dynamique ET dynamique
    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
     
    // gtabDocuments est un tableau de Document
    // doit être dynamique car tu ne sais pas combien tu as de documents dans le tableau
    // donc on écrit :
    // gtabDocuments est un tableau dynamique de Document
    // Mais comme les objets documents sont construits de façon dynamique
    // on écrit même si ça parrait bizzare
    gtabDocuments est un tableau dynamique de Document dynamique
     
    // plus loin dans le code
    // on déclare un nouveau document
    unDoc est un Document dynamique
    unDoc=allouer un Document
    // on le remplit
    //..................
    // on ajoute le doc au tableau
    gtabDocuments[gnNbDocument]=unDoc
     
    // plus loin dans le code on fait appel à la methode comme ça 
     gtabDocuments[gnNbDocument].p_sMRZsss(AX_PrDoc..NomComplet)
    ça marche chez moi...

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

Discussions similaires

  1. Accès aux méthodes d'un objet dans un vector.
    Par Huruu dans le forum Débuter
    Réponses: 4
    Dernier message: 09/02/2010, 16h23
  2. Gestion d'objet encapsulé et accès aux méthodes.
    Par Ragnarok666 dans le forum Débuter
    Réponses: 7
    Dernier message: 13/03/2009, 14h37
  3. Réponses: 15
    Dernier message: 16/05/2007, 16h53
  4. Réponses: 5
    Dernier message: 22/04/2005, 11h38
  5. [TOMCAT] JSP problème d'accès aux méthodes d'une classes
    Par gunnm dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 22/05/2004, 14h02

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