copyrightx
Messages postés59Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention14 janvier 2016
-
10 août 2006 à 14:29
copyrightx
Messages postés59Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention14 janvier 2016
-
3 sept. 2006 à 18:41
Bonjour à tous,
Voici le problème que je rencontre, j'ai à ma disposition :
- Un projet de Contrôle ActiveX (Nommé Projet1)
- Un module (Nommé Module1)- Un contrôle ActiveX (AutoRedrawTrue, ScaleMode Pixel, Nommé UserControl1)
- Une fonction basic qui modifie la couleur d'arrière-plan du controle qu'on lui envoie, placée dans le module
Voici cette fonction :
Public Function ChangeColor (Control as Object)
Control.BackColor = rgb(Rnd(255),Rnd(255),Rnd(255))
End Function
Le problème étant que lorsque j'appel la fonction à partir du contrôle ActiveX de la sorte :
ChangeColor UserControl
Microsoft Visual Basic déclare une erreur : "UTILISATION NON VALIDE DE NOM DE CLASSE DE BASE". Normalement, la fonction doit modifier uniquement la couleur d'arrière-plan du contrôle ActiveX. J'ai donc créé les propriétés pour BackColor mais cela ne marche toujours pas. Le réel problème consiste à trouver comment appeler une fonction externe (placée dans un module) en lui faisant passer "UserControl" de façon à pouvoir utiliser la fonction mais ce, uniquement à partir du module.
Sans la résolution à ce problème, je serais obligé de placer les fonctions du module danschqcun des contrôles ActiveX vu que chacun utilise presque les même fonctions !!!
copyrightx
Messages postés59Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention14 janvier 2016 3 sept. 2006 à 18:41
Désolé pour le retard ...
J'ai trouvé. Le problème ne venait pas de l'appel de procédure. En fait la fonction ChangeColor était uniquement un exemple pour essayer de définir le problème. J'ai une fonction placée dans un module qui me permet, entre autre, de tracer des points sur le contrôle ActiveX placé dans le même projet. Cependant si on écrit dans ce module UserControl.Line (x1,y1)-(x2,y2) et que la propriété .Line n'existe pas dans le code du UserControl, la ligne n'est pas tracée. Comme je ne voulais pas créer la propriété .Line au UserControl, j'ai utilisé l'API MoveToEx ainsi que ceux utilisés pour créer une ligne donc c réparé.
Merci quand même à tous pour le soutient. Pour plus d'infos sur l'évolution du projet Apparea®_xp, rendez-vous sur "www.apparea-ocx.fr.fm" à partir d'Internet Explorer (pour avoir une ouverture correcte des pages). Sur le site, cliquez sur la rubrique "Visite dans les coulisses de Apparea®_xp.