Cjvg
Messages postés330Date d'inscriptionmercredi 6 décembre 2000StatutMembreDernière intervention26 octobre 2017
-
12 mai 2013 à 15:42
Cjvg
Messages postés330Date d'inscriptionmercredi 6 décembre 2000StatutMembreDernière intervention26 octobre 2017
-
16 mai 2013 à 17:48
Bonjour,
J'ai une procédure relativement importante en taille qui permet d'appliquer des dégradés de couleurs sur des picturebox, et des Form.
Question: Est-il possible d'intégrer cette procédure dans un OCX en sachant bien entendu que ces changements de dégradés interviendraient sur des objets qui sont en dehors de l'Ocx dans la Form Main de l'utilisateur par exemple.
Je remercie le spécialiste qui aura l'amabilité de me donner la réponse et les quelques instructions nécessaires pour faire fonctionner la procédure.
Par avance merci.
Ps: J'ai "étudié" pas mal d'Ocx et je n'en ai trouvé aucun qui explique avec un exemple très simple la technique que doit utiliser un débutant pour réaliser ce genre de développement. Idem pour les tutoriaux que j'ai pu consulter.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 12 mai 2013 à 19:19
Bonjour,
Pour faire ce que tu exposes-là, il te suffit d'écrire des procédures dans le code de ton ocx (dans un module) et de les appeler en leur passant les objets concernés.
soit toto.ocx l'ocx et donc toto1 l'objet inséré dur un Form
si existe la procédure titi(O as ...) dans un module de ton ocx ===>>
toto1.titi(ton_objet) traitera ton objet ton_objet.
________________________
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.
Cjvg
Messages postés330Date d'inscriptionmercredi 6 décembre 2000StatutMembreDernière intervention26 octobre 2017 13 mai 2013 à 10:05
Bonjour Mr. Ucfoutu,
Je pense ne pas avoir compris correctement votre réponse. Voilà ce que j'ai fais:
1) Le Vbp de mon Ocx porte le Nom VbpOcx et le nom de l'Ocx porte le nom MonOcx.
2) J'ai ajouté un module dans MonOcx que j'ai chargé avec la Procédure ci-dessous
- Public Sub OnDegrade(Objet As Object, Optional ByVal ParmType As String, Optional ByVal PCouleur As String)
- End Sub
3) Dans la form de mon Projet appelant j'ai écrit l'instruction:
- Call MonOcx.OnDegrade(Me, "VV", vbYellow)
4) A l'Exécution j'ai le message suivant:
- Erreur de Compilation - Méthode ou membre de données introuvable ----> sur le Call MonOcx
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 13 mai 2013 à 10:48
quel est le nom donné à ton contrôle une fois sur ton Form ?
________________________
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.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 13 mai 2013 à 11:21
Tu n'as pas répondu à ma question.
Ton ocx est un contrôle utilisateur. En cette qualité, il est insérable et nommable sur un Form de ton appli (exactement comme l'est, par exemple, une textbox).
Quel est le nom (par défaut ou que tu lui as donné) qu'il porte une fois inséré sur un Form de l'appli qui l'utilise (sa propriété Name) ?
________________________
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.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 14 mai 2013 à 19:08
Y a t'il encore un pilote dans l'avion ?.
Oui, bien sûr, bien qu'encore imbibé à la suite de ripaille.
Mais la réponse que tu as faite n'est pas la réponse à ma question. Je t'engage à la relire calmement.
Ce que j'attends n'est pas le nom de ton ocx, mais celui du contrôle utilisateur inséré sur un form de ton appli.
________________________
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.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 14 mai 2013 à 20:02
Ben ...
Je ne vois vraiment pas comment tu peux tester ce contrôle que tu as créé sans l'insérer sur un Form d'une application !
Ton ocx, c'est comme n'importe quel autre composant (un commandbutton, une textbox, etc ...). Il ne devient "actif" qu'une fois inséré dans une appli.
________________________
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.
Cjvg
Messages postés330Date d'inscriptionmercredi 6 décembre 2000StatutMembreDernière intervention26 octobre 2017 15 mai 2013 à 11:08
Bonjour,
L'Ocx contient un Label qui porte le Nom Dtext. Dans l'application, je modifie ses attributs comme suit: --> MonOcx.Font = "Comic sans Ms" Un mystère pour moi, le label porte le nom Dtext et n'apparaît pas dans l'instruction ci-dessus. (C'est OK à l'exécution)
J'ai ensuite ajouté la procédure OnDégrade dans un module de l'Ocx
- Public Sub OnDegrade(Objet As Object ,xxxxxx,xxxxxx)
et ajouté un Call à cette procédure dans l'application.
- Call MonOcx.OnDegrade(Me, "VV", vbYellow) J'ai, pour modifier les attributs du Label,utilisé le nom de l'Ocx --> MonOcx comme
je l'ai fais pour appeler le Call.
Le projet est composé des modules suivants:
- MonProjet.vbg <-- Groupe de Projets
- MonProjet.vbp - Name = MonProjet <-- L'application
- MaForm.frm - Name = MaForm <-- L'application
- MonOcxP.vbp - Name= MonOcxP <-- L'Ocx
- MonOcx.Ctl - Name= MonOcx <-- L'Ocx
- MonOcxM - Name=MonOcxN <-- Le Module de l'Ocx qui contient La Procédure OnDégrade
Désolé !
Je découvre les Ocx.
Sans documentation, j'en suis réduit à décortiquer les sources pour essayer de comprendre leurs fonctionnements et je n'ai encore rien compris.
Cela dit, je comprends la difficulté que vous rencontrez pour m'aider et je comprendrais parfaitement que vous ne puissiez me donner réponse en raison des difficultés que je rencontre à vous donner les informations que vous me demandez.
Cjvg
Messages postés330Date d'inscriptionmercredi 6 décembre 2000StatutMembreDernière intervention26 octobre 2017 16 mai 2013 à 12:47
J'ai l'impression que le capitaine a quitté le navire et qu'il a laissé tout seul son passager à bord sans gilet de sauvetage et tout ça, dans la tempête
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 16 mai 2013 à 13:12
C'est tout simplement que tu me laisses coi, cjvg...
Désolé, mais je ne peux faire de miracles...
________________________
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.
Cjvg
Messages postés330Date d'inscriptionmercredi 6 décembre 2000StatutMembreDernière intervention26 octobre 2017 16 mai 2013 à 14:23
Je suis désolé de ne pas avoir su vous donner les informations que vous me demandiez. Cela est certainement dû à mon ignorance sur le sujet. Je pensais avoir tout donné dans mon dernier message mais je me rends compte que je me suis encore trompé.
Cjvg
Messages postés330Date d'inscriptionmercredi 6 décembre 2000StatutMembreDernière intervention26 octobre 2017 16 mai 2013 à 17:48
Bonjour,
Je n'ai pas encore trouvé la solution parfaite pour résoudre mon problème.
Ce que je viens de faire et qui fonctionne correctement c'est:
1) J'ai supprimé le module de l'Ocx qui contenait la Procédure OnDegrade
2) J'ai incorporé directement cette procédure dans l'UserControl
- Public Sub Ondegrade(Objet As Object,xxxx,xxxxxx) .......... End Sub
3) Dans la Form de mon application, j'ai placé l'instruction:
- Call MonOcx.OnDegrade(Me, "VV", vbCyan)
----------------------------------------------------------------------------------------
Je souhaiterais conserver le Module dans l'Ocx mais je ne sais pas ce qu'il faut faire pour
que la procédure OnDegrade soit alors connue de l'UserControl.