Type non reconnu

Résolu
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 - 30 avril 2012 à 09:07
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 - 1 mai 2012 à 15:35
Bonjour à tous,

Pour un besoin spécifique, il est nécessaire d'avoir un composant accessible aussi bien en tant que DLL que comme OCX.

Au final UN SEUL fichier à distribuer de type OCX.
Celui-ci contient une Classe (CLS) avec un certain nombre de méthodes pour préciser les propriétés, un composant (CTL) avec les mêmes propriétés. Celui-ci est intégrable dans toute appli le désirant et est aussi accessible (via la classe) comme une Form distincte contenue dans le fichier sus-nommé et qui contiendrait l'OCX en question.

Dans l'appel via la classe, ma form reçoit l'intégralité des propriétés définies par l'utilisateur sous forme d'une structure relativement complexe et la retransmets à l'OCX pour qu'il puisse mettre à jour ses propriétés via une fonction dédiée qui reçoit en paramètre cette structure.

Le code se présente comme suit:
Public Type TProperties (Cette définition est dans le module de classe)
' La définition de la structure
End Type

Dans la Form:
Private MyProperties as TProperties

Sub Form Load
MyProperties = GetProperties() (Fonction située dans le module de classe destiné à récupérer la structure)
Call SetProperties(MyProperties) (Fonction située dans l'OCX et destinée à remplir ses différentes propriétés).
End Sub

J'obtiens une erreur sur le "Sub Form Load" indiquant que MyProperties n'est pas du type attendu.
Or dans la fenêtre des variables, MyProperties est bien indiqué comme étant du type attendu et elle contient bien les différentes variables que j'y avais définies).

J'espère que j'ai été assez clair.

Mettre ma définition dans la Form ne change rien à l'affaire, pas plus qu'enclore Myproperties de parenthèses comme indiqué dans l'aide.
J'ai aussi essayé d'utiliser une propriété dans la Form pour assigner cette structure, mais toujours la même erreur.

Si quelqu'un avait une idée...


Calade

2 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
30 avril 2012 à 12:41
pas simple de transmettre ainsi des type
passer par une class me semble une bonne première étape...

ou tenter :

GetProperties MyProperties

qui ne ferai alors que remplir la structure

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
3
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
1 mai 2012 à 15:35
Merci de ta réponse,

En fait j'avais voulu faire l'économie des définitions de multiples propriétés puiquel dans la version OCX elle n'auraient été disponibles que par une page de propriété (et peut-être gagner quelques fractions de seconde à l’exécution), mais apparemment ce n'était pas possible.

J'ai donc défini ces propriétés que j'ai assigné dans ma form et là tout marche nickel.

Encore merci.

Calade
0
Rejoignez-nous