Probleme avec CreateObject

Signaler
Messages postés
87
Date d'inscription
jeudi 2 février 2012
Statut
Membre
Dernière intervention
17 avril 2013
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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)