Passage de paramètre "udt" à une méthode d'objet activeX ?
HWO
Messages postés7Date d'inscriptionmardi 2 novembre 2004StatutMembreDernière intervention 5 mai 2009
-
3 nov. 2004 à 09:11
HWO
Messages postés7Date d'inscriptionmardi 2 novembre 2004StatutMembreDernière intervention 5 mai 2009
-
3 nov. 2004 à 13:23
Un petit schéma valant mieux qu'un grand discours, ci joint un bout de code très simple que je n'arrive pas à mettre en oeuvre :
----------------------------------------------------------------------------------
Création d'un objet active X qui contient qu'un seul lablel et un "UDT" Public. Voici son code :
Option Explicit
Public Type mUDT
name As String
num As Long
End Type
Public Sub loadData(data() As mUDT)
Dim str As String
Dim i As Integer
For i = 0 To UBound(data)
str = str & vbCrLf & Chr(9) str str & "data(" & i & ") name " & data(i).name & _
" num = " & data(i).num
Next i
Label1.Caption = str
End Sub
-----------------------------------------------------------------------------------
Dans un projet EXE standard qui intégre comme composant l'activeX créé précedement, j'y mets un module et une form (form1). Sur la form je pose le controle activeX seul sans code (userControl1). Dans le module j'intégre le code ci dessous :
Option Explicit
Dim mUdtTest() As mUDT
Sub main()
Dim i As Integer
ReDim mUdtTest(5)
For i = 0 To 5
mUdtTest(i).Name = "objet_" & i
mUdtTest(i).num = i
Next i
Form1.UserControl11.loadData mUdtTest
Form1.Show
End Sub
----------------------------------------------------------------------------------
Tout ceci fonctionne très bien dans l'atelier de developpement, mais pas
après installation en bon et du forme (avec le package généré par l'assistant d'empaquetage de VB6) sur une autre machine.
Lors du lancement de l'éxécutable, rien ne se passe pas de message d'erreur, rien quoi sauf un malheureux beep.
Je ne comprends pas mon erreur, ou est elle ?
Plus généralement quelle est la mèthode pour passer comme argument à une méthode ActiveX un tableau d'UDT ?
Par avance MERCI.
A voir également:
Passage de paramètre "udt" à une méthode d'objet activeX ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013131 3 nov. 2004 à 09:41
Hum, es-tu sûr que ce problème vienne de ton ActiveX ?
Par exemple, utilise-tu un fichier MANIFEST ? (je rencontre ce problème de temps en temps avec la version compilée : il faut mettre le programme en compatibilité Win2000 ou XP pour le faire fonctionner par exemple).
Car si le problème venait de l'ActiveX, il y aurait sûrement un message d'erreur !
_______________________________________
HWO
Messages postés7Date d'inscriptionmardi 2 novembre 2004StatutMembreDernière intervention 5 mai 2009 3 nov. 2004 à 13:23
Effectivement je n'utilse pas de "MANIFEST" pour la simple et bonne raison : je ne sais pas ce que c'est !!!!!.
Par contre je peux donner quelques précisions. J'utilise VB6 (visual studio) sous windows2000. Le package est fait sur cette machine. Le PB arrive lorsque j'installe ce package sur une autre machine elle même équipée de windows2000. J'ai constaté également ce phénomène sur une machine équipée de windows2003.
J'en perd mon latin !!!!
>:)