Probleme avec CreateObject

InfoGeo Messages postés 87 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 17 avril 2013 - 22 avril 2011 à 13:44
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 22 avril 2011 à 17:13
Salut,

Je fais un stage et dans ce stage je suis amené a créer un programme qui va me permettre dansun premier temps d afficher la valeur de la température et du taux d humidité mesurer par mes 5 capteurs.

Pour cela j ai créer une classe (cls_T3411)

Et en fait je voudrais créer mes objets a l aide d une boucle for et par rapport a un fichier ini

Fichier ini:

[SENSORS]

;syntaxe: nom du capteur=modèle du capteur  adresse  bus sur lequel il est relié
HUMIDITY_1=T341101RS485
HUMIDITY_2=T341102RS485
HUMIDITY_3=T341103RS485
HUMIDITY_4=T341104RS485
HUMIDITY_5=T341105RS485
TEMPERATURE_1=T341101RS485
TEMPERATURE_2=T341102RS485
TEMPERATURE_3=T341103RS485
TEMPERATURE_4=T341104RS485
TEMPERATURE_5=T341105RS485


je voudrais donc récupéré l adresse des capteurs, ainsi que la classe mais il n accepte pas ceci :


Call IniReadItems(ConfigHardIniPath, "SENSORS", MySensors()) 'permet de lire le nom des objets dans notre fichier confighard.ini

ReDim Sensors(0)

For i = 1 To UBound(MySensors)
a = IniReadString(ConfigHardIniPath, "SENSORS", MySensors(i))
ReDim Preserve Sensors(UBound(Sensors) + 1)
Debug.Print a
cfg_Sensors() = Split(a, "")
Debug.Print cfg_Sensors(0)
Set Sensors(UBound(Sensors)) = CreateObject("cls_" & cfg_Sensors(0))le composant ActiveX ne peut créer l objet
Sensors(UBound(Sensors)).Address = cfg_Sensors(1)
Next i

evidemment sensors est une variable globale .....

J espere que vous pourrez m aider a résoudre ce probleme =)

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 avril 2011 à 17:10
Salut

CreateObject ne s'utilise que pour la génération d'une classe depuis une application serveur, genre Excel ou Word.
Si tu dois créer une nouvelle classe, déclare-la simplement :
Set Sensors(UBound(Sensors)) = New cls_Machin_Chose
Il suffit que tes objets Sensors soient du même type de classe

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 avril 2011 à 17:13
PS : Plutôt que d'utiliser un tableau de Classe, il serait plus pratique de créer une Collection de classes (méthodes de recherche, d'ajout et suppression plus facile, mais ces fonctions sont plus lentes qu'un tableau)
0
Rejoignez-nous