PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Nouvelle version Composant n'est pas prise en compte
Nouvelle version Composant n'est pas prise en compte
Débuté par Vincent, 14 jan. 2015 14:06 - 9 réponses
Posté le 14 janvier 2015 - 14:06
Bonjour à tous,
J'ai besoin de créer un composant externe.
Donc je fais un petit composant pour me faire la main
Voici une procédure globale :
Procedure pBonjour
Trace("Bonjour")

//Sur le projet Appelant
//J'importe WDI depuis le répertoire du projet composant//
// Un bouton qui exécute :
pBonjour //le message Bonjour est bien affiché
// Apparemment le composant WDK est automatiquement recopié dans le répertoire du projet appelant
2è Essai :
// Côté composant
// Je modifie la procédure pBonjour
// pBonjour devient
Procedure pBonjour(sText)
trace(sText)
stext="Encore "+sText
RENVOYER sText

//Je regénère le composant
// Je remplace l'ancienne version Aa par la nouvelle Ab

// Coté projet appelant, je reImporte WDI
// Je recompile le projet appelant
// Je teste avec le code suivant
sMes est une chaine="Aurevoir"
Sai_test=pBonjour(sMes)

// Message d'erreur : pBonjour attend 0 paramètre alors j'en passe 1
// ... Composant Aa trop ancien / composant Ab

// Je pense avoir trouvé le problème dû à ce que l'ancien composant n'a pas été remplacé par le nouveau
// Je fais donc une copie/coller pour remplacer l'ancien par le nouveau
// je reimporte le WDI
//Mais l'exécution donne toujours la même erreur

//Pourtant l'ancien composant a été écrasé.

Merci de m'éclairer
Membre enregistré
487 messages
Popularité : +24 (30 votes)
Posté le 14 janvier 2015 - 19:07
tu dois actualiser le composant dans le projet appelenant, il mettra a jour le composant tout seul, pas besoin de le copier a nouveau,
sinon, il faut le copier , je crois dans le repertoire exe, pas dans le rep du projet, c'est celui qui est utilisé au moment du test
Membre enregistré
487 messages
Popularité : +24 (30 votes)
Posté le 14 janvier 2015 - 19:08
et c'est le wdk qui est le composant, pas le wdi, donc si tu copies, il faut aussi le wdk.
de plus, si tu distribues, tu dois distribuer que le wdk, l'autre n'a pas d'utilité dans la version finale
Posté le 14 janvier 2015 - 22:29
Bonjour Jacob,

Apparemment, j'ai recréé un nouveau projet appelant, et tout se passe correctement après importation de WDI et sans intervention de copie manuelle.
Je vais continue mes tests avec des modifications bidon

Merci de vos explications
Posté le 15 janvier 2015 - 08:12
Bonjour Jopab,
Excuser moi, je vous ai confondu avec une autre personne
- Un nouveau projet Appelant avec un nouveau composant fonctionne bien après avoir importé le fichier WDI se trouvant dans le répertoire EXE du projet Composant.
- je modifie le composant en ajoutant une 2è procédure et je régénère le composant en mettant à jour la version 1.00Al vers 1.00Am.
- je retourne au projet Appelant, j'importe le fichier WDI comme la fois précédente et je recompile par le bouton "Recompiler et Resynchroniser". Mais la 2è procédure reste invisible.
- je recopie manuellement les fichier WDK et WDI dans le répertoire du projet Appelant et je recompile et du coup la 2è procédure peut être évoquée. Mais en l'exécutant,j'ai le message d'erreur suivant :
"Cette application a été compilée avec la version 1.00Al du composant 'TEST' : recompilez l'application avec au moins une version 1.00Am du composant."
- Pour recompiler, j'ai juste à cliquer le bouton "Recompiler". Je ne sais pas ce qui faut faire par rapport à la phrase "recompilez l'application avec au moins une version 1.00Am du composant."
Comment inclure la version nouvelle 1.00Am dans la compilation ?

Merci de m'éclairer
Membre enregistré
487 messages
Popularité : +24 (30 votes)
Posté le 15 janvier 2015 - 12:46




moi, j'utilise l'ancienne interface, la nouvelle me convient pas
quand je met a jour un composant, je revient sur le tableau de bord du projet initial, je clique sur la fleche circulaire( f5, rafraichir le graphe du projet) du menu et il cherche automatiquement les mises a jour de composants, et je valide la suite, rien de plus a faire.
rarement de soucis
parfois, ca deconne, alors, je reimporte le compo.
Posté le 15 janvier 2015 - 16:59
Bonjour Jopab,
Bravo ! le bouton magique (F5) a résolu le problème et je ne comprend pas que ce n'est pas mieux expliqué dans l'aide.
Toute fois, après une modif et régénération du composant qui change de version , l'action d'importer le nouveau fichier WDI n'a apparemment aucun effet. Pour que ça marche, il faut quand même copier le composant WDK modifié dans le répertoire du projet Appelant.
C'est un détail mais cela ne correspond pas à la doc !

Merci beaucoup
Membre enregistré
487 messages
Popularité : +24 (30 votes)
Posté le 15 janvier 2015 - 23:59
bizarre, voici comment, moi, je procedeje cree un repertoire composants dans le repertoire du projet
chaque composant a un repertoire a son nom
dans le projet de base, j'importe mes composants,
chaque fois que je modifie un composant, j'actualise le projet initial, et voila,
je ne deplace aucun fichier a aucun moment.

quand il ne detecte pas la modification du composant, je le reimporte dans la liste des composants du projet, ca regle le pb.

++
Posté le 16 janvier 2015 - 14:09
Rebonjour Jopab,

Enfin, l'essentiel fonctionne !
Il ne reste que qq chose qui me chiffonne.
ça ne fonctionne que si je met le composant WDK et le fichier WDI dans le répertoire du projet Appelant, par copie ou par install.
1) Lorsque vous régénérez le composant . Ce dernier va se retrouver dans le répertoire EXE du projet composant.
Vous créez un sous répertoire pour y mettre votre composant. Pour ce faire, il faut bien faire une install ou une copie ?
2) Comment le projet appelant sait que votre composant se trouve dans tel sous répertoire ? Par ComposantCharge ? Par Import WDI ? Dans la phase de développement, ComposantCharge ne convient pas. Import WDI est sans effet ?
3) Que fait le WDI exactement ? Déplacer le composant dans le projet appelant ? Indiquer le chemin du composant ? Paramétrage invisible ?

Merci
Membre enregistré
487 messages
Popularité : +24 (30 votes)
Posté le 16 janvier 2015 - 19:31
je ne cree jamais d'install du composant, je le genere
et je met a jour le projet initial
aucune copi de fichier, et lors de la generation du projet initial, ca cree automatiquement le fichier wdk dans le rep exe du projet

aucune manip pour moi

la seule manip est d'importer les composant dans le projet initial et d'actualiser a chaque fois que je modifie le compo.
je ne sais pas exactement ce que fait le wdi, mais il doit renseigner le projet initial pour la compil et generation finale

Vincent a écrit :
Rebonjour Jopab,

Enfin, l'essentiel fonctionne !
Il ne reste que qq chose qui me chiffonne.
ça ne fonctionne que si je met le composant WDK et le fichier WDI dans le répertoire du projet Appelant, par copie ou par install.
1) Lorsque vous régénérez le composant . Ce dernier va se retrouver dans le répertoire EXE du projet composant.
Vous créez un sous répertoire pour y mettre votre composant. Pour ce faire, il faut bien faire une install ou une copie ?
2) Comment le projet appelant sait que votre composant se trouve dans tel sous répertoire ? Par ComposantCharge ? Par Import WDI ? Dans la phase de développement, ComposantCharge ne convient pas. Import WDI est sans effet ?
3) Que fait le WDI exactement ? Déplacer le composant dans le projet appelant ? Indiquer le chemin du composant ? Paramétrage invisible ?

Merci