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 :

Problème composant interne avec analyse et partage de classe


Sujet :

WinDev

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut Problème composant interne avec analyse et partage de classe
    Bonjour

    Pour information tous mes projets sont sur 1 GDS

    J'ai plusieurs projets qui ont une analyse. Pour chaque fichiers d'analyse j'ai une classe (exemple Fichier client, classe cClient). Dans chaque classe, j'ai les membres du fichier + hérite de la classe cBDD qui elle permet d'ajouter, modifier supprimer, charger l'objet.


    J'ai un projet à rajouter dans plusieurs projets donc je réalise un composant interne. Ce composant interne a ça propre analyse. Pareille que pour les projets. 1 fichier => 1 classe = membre + cBDD que j'ai partagé.
    Problème, il n'est pas possible d'avoir la même classe dans le projet et le composant interne. => Ça c'est un gros problème pour le développement

    Pas de soucis, je crée un composant interne BDD avec la classe cBDD. Dans Mon projet, j'ai le projet, le composant interne, le composant interne BDD. pas d'erreur de compilation. Je test, BDD_Ajoute d'un fichier du projet OK, BDD_Ajoute d'un fichier du composant interne => plante car ne connais pas le fichier pourtant j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    oClient est un cClient // classe et fichier définie dans le composant interne. Donc j'utilise bien la classe du composant interne qui lui connait le fichier.
    ...
    oClient:BDD_Ajoute()
    J'ai trouvé une solution mais pas pour moi LA SOLUTION.
    J'ai copié la cBDD que j'ai renommé cCI_BDD que j'ai inséré dans le composant interne. Le problème c'est que si je modifie une classe cela ne modifie pas l'autre.

    Avez vous LA SOLUTION?

    Cordialement Law

  2. #2
    Membre éclairé
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 328
    Points : 789
    Points
    789
    Par défaut
    Effectivement la gestion des namespaces n'étant pas de mise suis pas étonné du problème et on est en plein dedans.
    La solution que t'as trouvé est la première qui me serait venue à l'esprit...ce n'est pas LA solution j'en conviens et ça duplique le code, mais là immédiatement j'en vois pas d'autres.
    A l'occasion je le testerais sur mon WD21

  3. #3
    Membre éclairé
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 328
    Points : 789
    Points
    789
    Par défaut
    Après test sur WD21 j'obtiens en effet le message suivant à l'intégration du composant dans le projet lorsque la classe cBDD est partagée entre le projet et le composant:

    Problème avec le composant <ComposantInterne1>.
    Certains éléments du composant ont un nom logique déjà existant dans le projet ou dans un autre composant interne.
    Liste des éléments dont le nom logique est déjà existant :
    cBDD
    Le composant <ComposantInterne1> a été extrait pour test.

    Changer le nom de la classe cBDD dans le composant permet en effet le contournement puisque le nom logique ne sera plus identique....mais là, j'ai pas de solution. Sans namespace je ne vois pas comment le faire.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut
    OK.
    Merci pour ton retour.

    La j'ai pris cette exemple. mais ne pouvant pas avoir 2 fois le même nom entre un projet et un composant interne, c'est dommage. Dans certain cas cela complexifie le code et fait perdre du temps.
    Pour m'a part, windev c'est sympas mais dans certain cas ils ont quelques lacunes.

    Cordialement Law

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/09/2017, 18h46
  2. [Lazarus] Problème composant Zeoslib avec Mysql
    Par Krys006 dans le forum Lazarus
    Réponses: 4
    Dernier message: 30/03/2009, 23h34
  3. Réponses: 2
    Dernier message: 26/10/2006, 10h13
  4. Problème de tri avec analyse croisée
    Par drthodt dans le forum Access
    Réponses: 2
    Dernier message: 18/10/2005, 16h23
  5. [JScrollPane] Problème avec la taille du composant interne
    Par wikers dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 11/09/2005, 15h03

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