Type non reconnu [Résolu]

Messages postés
1212
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
- - Dernière réponse : Calade
Messages postés
1212
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
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 193 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Renfield
Messages postés
1212
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
8
0
Merci
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
Commenter la réponse de Calade