Problème avec une procédure

Signaler
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017
-
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017
-
Bonjour,

J'ai une procédure dans l'userControl d'un Ocx que j'appelle dans une application.
Je souhaiterais ajouter un module au Usercontrol pour accueillir cette procédure.
J'ai déjà réalisé cette opération mais le nom de la procédure n'est pas reconnu de l'application qui tombe en erreur au moment de l'exécution.

Par avance merci.

9 réponses

Bonjour Cjvg.

Où est votre code, dûment indenté et syntaxiquement coloré ? À quelle ligne l'erreur se produit-elle ? Quel est le message d'erreur qui s'affiche alors ? Combien de questions faudra-t-il vous poser avant que quelqu'un puisse vous aider ?

Cordialement.

Étant illettré, je signe d'une croix : ×
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017

Bonjour à tous,

Je complète pour ceux qui n'auraient pas compris.

J'ai un module dans un UserControl qui contient une Procédure.
Je souhaiterais faire un Call à cette procédure dans la Form d'une application.

Quelles sont les dispositions qu'il faut prendre pour que cette procédure soit reconnue par
l'application.

Par avance Merci

Bonjour,
Je complète pour ceux qui n'auraient pas compris.

Moi j'ai tout à fait compris, du premier coup, depuis le début... Ainsi que j'ai également très bien compris ce qui t'a demandé Zermelo (que je salue au passage):
Où est votre code, dûment indenté et syntaxiquement coloré ? À quelle ligne l'erreur se produit-elle ? Quel est le message d'erreur qui s'affiche alors ? Combien de questions faudra-t-il vous poser avant que quelqu'un puisse vous aider ?


Je renouvelle donc sa demande, et reste dans l'attente de ton code et toutes les explications que l'on te demande.

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Salut

Si tu veux de l'aide, il faut, en effet, être plus précis.

"un Ocx que j'appelle dans une application"
Non, on n'appelle pas un OCX : On l'utilise sur une forme, puis on utilise ses propriétés/méthodes.
Sans le code, impossible de savoir ce que tu entends par là.

"[i]J'ai un module dans un UserControl qui contient une Procédure.
Je souhaiterais faire un Call à cette procédure dans la Form d'une application./i"
La forme hôte ne pourra utiliser que les propriétés et méthodes de l'OCX. Même si ton OCX contient un module, ce que contient ce module ne sera pas accessible depuis l'hôte.
Un OCX se présente comme un objet unique.
En mode création, les fichiers de ton OCX doivent, normalement, composer un projet à part entière.
Si tu l'utilises pour l'instant en mode création, cela veut dire que tu as créé un groupe de projets composé :
- du projet principal hôte
- du projet de l'OCX
Là encore, le manque d'information ne permet pas d'aller plus loin dans l'aide que tu demandes.

Si tu veux que ta procédure puisse être vue et utilisable par l'hôte, il faut la placer dans le UserControl et la déclarer en Public.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017

La forme hôte ne pourra utiliser que les propriétés et méthodes de l'OCX. Même si ton OCX contient un module, ce que contient ce module ne sera pas accessible depuis l'hôte.

Voilà la réponse à ma question
Merci
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour, cjvg,
je crois que tu as trop vite lu :
Le contenu est une chose. L'exécution des instructions en est une autre.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017

Bonjour Mr. Ucfoutu,

Le contenu est une chose. L'exécution des instructions en est une autre.

Le contenu de ma Procédure est une chose.
L'exécution des instructions de ma procédure en est une autre.

J'en déduis que l'hote peut faire un call à ma procédure pour l'exécuter.


???????????????????????????????????????????????????????????????????????????????
?????????????????????? C'est de plus en plus clair pour moi ???????????????????
???????????????????????????????????????????????????????????????????????????????

Je vais continuer à faire des recherches sur le Net


Merci.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bon.
Je vais te dire comment je procède exactement pour les miens :
Je n'encombre pas le .ctl par le code des instructions des procédures que je veux rendre disponibles depuis l'hôte du userControl.
- Je les mets en public dans un Module.bas du projet de mon ocx, sous un nom court (exemple : public sub toto)
- dans le .ctl je les mets en public sous un nom plus évocateur
exemple
Public sub faire_ceci_ou_cela
 toto
end sub

De cette manière : mon .ctl est peu encombré (ne fait pas des kilomètres à lire en cas de maintenance)
Une fois compilé en (exemple aaaaa.ocx)
Puis inséré (nom par défaut aaaaa1.ocx) sur le form de l'application hôte :
si je frappe aaaaa1. vb me propose immédiatement, parmi ses propositions : faire_ceci_ou_cela (qui est en réalité développé sous toto dan,s le module.bas du projet ocx).
Voilà.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
330
Date d'inscription
mercredi 6 décembre 2000
Statut
Membre
Dernière intervention
26 octobre 2017

Re Bonjour,

Je pense que j'avais fais ce que vous me proposez à savoir:
Ecrire une procédure dans le .Ctl qui fait un call à la procédure qui se trouve dans le .Bas.
Technique que je ne trouvais pas élégante.

Après lecture de votre réponse, j'en conclus qu'il est impossible de faire dans une application un Call à une procédure enregistrée dans un module de l'ocx.

Je pensais qu'il était possible par une technique que je ne connais pas de déclarer dans l'Ocx
le Nom de la Procédure.bas afin qu'elle soit connue de l'application.

Merci encore une fois pour cette réponse.