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 :

Lancement fenêtre d'un composant [WD18]


Sujet :

WinDev

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Lancement fenêtre d'un composant
    Bonjour,
    je développe une application et un composant. Dans cette application j'intègre mon composant, quand je lance l'application en Test, elle plante au moment ou j'ouvre une fenetre du composant et me met un message comme quoi les procéduresGloables du compoosant non pas été chargées.

    Erreur à la ligne 4 du traitement Fin d'initialisation de FEN_enq_Enregistrement.
    La procédure 'getLiblleFlagAno' n'est pas accessible.
    L'élément 'COL_ProcéduresGlobales' qui contient la procédure n'est pas présent dans les WDL chargées ou appartient à une WDL qui n'a pas encore été chargée.

    ----- Informations techniques -----

    Projet : IKOS_2013

    Appel WL :
    Traitement de 'Fin d'initialisation de FEN_enq_Enregistrement' (FEN_enq_Enregistrement), ligne 4, thread 0

    Que s'est-il passé ?
    La procédure 'getLiblleFlagAno' n'est pas accessible.
    L'élément 'COL_ProcéduresGlobales' qui contient la procédure n'est pas présent dans les WDL chargées ou appartient à une WDL qui n'a pas encore été chargée.

    Code erreur : 1052
    Niveau : erreur fatale (EL_FATAL)

    Dump de l'erreur du module 'wd180vm.dll' (18.0.150.7).
    Identifiant des informations détaillées (.err) : 1169
    Informations supplémentaires :
    EIT_PILEWL :
    Fin d'initialisation de FEN_enq_Enregistrement (FEN_enq_Enregistrement), ligne 4
    Sélection d'une ligne de ZR_Papier (FEN_MenuEnquete.ZR_Papier), ligne 5
    EIT_DATEHEURE : 06/09/2013 11:07:56
    Je ne comprend pas d'où vient le problème,

    merci d'avance de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut
    Quand tu créé le composant ajoute la collection de procédure globale dans les éléments du composant généré
    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Expérience, Réalisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    la collection de procédures globales est bien intégré et accessible. De plus dans mon projet de l'application globale, je vois bien mes fenêtres et ma collection de procédure globale dans l'explorateur de projet.

  4. #4
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut
    Quand tu génères un composant tu as 2 étapes de sélection des éléments:
    - Elements à intégrer dans le composant
    - Elements accessibles

    Vérifie que la collection soit cochée dans les 2 cas.
    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Expérience, Réalisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Bonjour, oui la collection est bien cochée dans les deux cas.

    Quand j'appelle mon composant, j'appelle une fenêtre simplement avec Ouvre(monComposant.nomDeLaFenetre), il n'y a aucune initialisation à faire avant ?

  6. #6
    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
    Bonjour,

    lorsque tu utilise des composants tu ne peux pas avoir une collection COLL_procGlob dans ton composant et une collection COLL_procGlob dans ton exécutable car les noms entrent en conflit

    Il faut renommer ta collection dy style "compoX_Coll_ProcGlob" dasn ton composant pour être tranquile.

    Bon dev

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Merci pour cette réponse, je n'ai pas eut le temps de tester car je travaille sur un autre projet. Je vous tiens au courant dès que je peux essayer

  8. #8
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Le problème venait bien du nom de la collection de procédure. Merci

  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
    Prends l'habitude de nommer ta collection avec le nom de ton composant, en plus de t'éviter ce genre de problèmes cela facilitera les appels.
    Evidemment pour être tout à fait rigoureux je te dirai bien de ne PAS utiliser de procédures globales d'une façon générale et de ne SURTOUT PAS utiliser de procédures globales dans un composant mais bon... il est tard et chaque chose en son temps. Garde ça dans un coin de disque dur je suis sur que dans peu de temps cela te paraitra évident.

    BD

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    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 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour
    Citation Envoyé par Atsibat Voir le message
    Evidemment pour être tout à fait rigoureux je te dirai bien de ne PAS utiliser de procédures globales d'une façon générale et de ne SURTOUT PAS utiliser de procédures globales dans un composant mais bon...
    Je me demande bien pourquoi il ne faudrait pas utiliser de procédure globale, que ce soit dans le projet ou dans un composant ?
    Si j'ai besoin d'une procédure dans l'ensemble de mon projet, où dois-je déclarer cette procédure, à part dans une collection de procédures globales ?

    Exemple concret: j'ai un projet avec deux configurations: un WebService, utilisé pour les besoin d'un site Web, et un composant.
    Ce projet n'a pas de fenêtre, où mettre les procédures, à part dans une collection de procédures globales ?

    Si je veux surcharger la fonction Erreur() de WinDev, pour trapper tous les message d'erreur, pourquoi ne pas créer une procédure globale erreur() ?

    Tatayo.

  11. #11
    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
    Bonjour Tatayo,

    Dans une classe bien sur

    Mais tu as partiellement raison pour la surcharge de la fonction Erreur.
    Cependant tu pourrai avoir avantage à utiliser cette fonction dans une classe particulière (ce que je fais d'ailleurs) ce qui te permet d'avoir des comportements différents pour tes erreurs selon que tu sois :
    - en test ( affiche l'erreur complète)
    - en lancement invisible pour une tache de fond (écris dans un journal de log)
    - en lancement manuel (affiche l'erreur moins complète et propose l'envoi par mail de l'erreur complète)
    D'ailleurs la gestion des erreurs est un composant à part entière.

    Tu vas me dires que c'est un marteau pour écraser une mouche mais c'est bien pour ça que je parlais d'appliquer ça dans le futur pour l'ami n1n1du44

    De plus quand tu aura écris ton marteau tu pourra le réutiliser à loisir.

    Bon dev

    Bon dev

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    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 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Disons que passer par une classe oblige à modifier le code pour utiliser la méthode de la classe, alors que passer par une procédure globale rend l'appel implicite, sans modifier le code.
    J'ai par exemple surchargé la fonction SoapExecute() dans un projet, pour lire dans un fichier ini l'adresse du WebService (pour faire la différence entre test et prod sans toucher au code) et pour générer une exception en cas d'erreur.

    Si je passe par une méthode de classe, à chaque import du WebService je dois reprendre tous les appels à cette fonction dans le code généré par WinDev.

    Donc globalement on fait exactement la même chose, toi avec une classe et moi avec une procédure globale.

    Je comprends bien qu'on peut faire autrement qu'avec des procédures globales, mais je ne vois pas pourquoi on ne doit pas utiliser ces dernières. Pour moi les deux méthodes se valent.

    Tatayo.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/04/2014, 09h34
  2. Animation lancement fenêtre
    Par thamak dans le forum GWT et Vaadin
    Réponses: 10
    Dernier message: 23/08/2009, 21h33
  3. Agrandissement d'une fenêtre avec un composant
    Par k_boy dans le forum Composants VCL
    Réponses: 1
    Dernier message: 04/11/2007, 20h52
  4. [SWING] Fenêtre avec différents composants
    Par soulhouf dans le forum Débuter
    Réponses: 5
    Dernier message: 17/08/2005, 13h01
  5. lancement de 2 fenêtres ms-dos
    Par neonico dans le forum Windows
    Réponses: 2
    Dernier message: 02/06/2004, 09h24

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