Passage de paramètre "udt" à une méthode d'objet activeX ?

HWO Messages postés 7 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 5 mai 2009 - 3 nov. 2004 à 09:11
HWO Messages postés 7 Date d'inscription mardi 2 novembre 2004 Statut Membre Derniè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.

2 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
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 !
_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
HWO Messages postés 7 Date d'inscription mardi 2 novembre 2004 Statut Membre Derniè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 !!!!
>:)
0
Rejoignez-nous