PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [WD 9] Objets Automation et SafeArray
[WD 9] Objets Automation et SafeArray
Débuté par uriel, 23 nov. 2005 15:17 - Aucune réponse
Posté le 23 novembre 2005 - 15:17
Bonjour,

J'ai la version 9 (en attendant la 10), et je viens de constater avec joie
que désormais il est possible
de récupérer des tableaux dans les objets Automation.
Comme j'ai pas mal galéré avec, j'en fais profiter ceux qui éventuellement
buteraient sur le problème.
Voici le problème que j'avais à l'époque en 7.5 :
* Vous déclarez un objet Automation (vers une DLL COM)
* Avec une des méthodes, vous devez récupérer un variant contenant tableau
de réels formaté (en C) avec SafeArray (voir documentation C).

C'était auparavant impossible : il y avait une incompatibilité de types.

Voici la solution que j'ai trouvé en version 9 :


// Déclarations
i est un entier
MonObjet est un objet Automation dynamique
TabResult est un tableau dynamique


QUAND EXCEPTION DANS
// Allocation de l'objet
MonObjet = allouer un objet Automation "MonAppli.Comm"
FAIRE
Erreur("Impossible d'allouer l'objet MonAppli.Comm !")
RETOUR
FIN

// Test du résultat de l'allocation
SI MonObjet = Null ALORS
Erreur("Impossible d'allouer l'objet MonAppli.Comm !")
RETOUR
FIN

// Appel de la méthode retournant un tableau de réels (exemple)
TabResult = MonObjet>>MaMéthode(Param1, Param2)

// Utilisation du tableau (exemple)
POUR i = 1 A 10
Trace(TabResult[i])
FIN


En espérant que ceci sera utile à quelqu'un.
Merci en tout cas à l'équipe de PC Soft d'avoir remédié à ce problème.

Cordialement,

Uriel AURA