ActiveX appelé par Javascript
Bonjour,
J'utilise un programme qui répétitivement (disons 10 fois par seconde) exécute le code javascript suivant:
Code:
1 2
| var proc = new ActiveXObject("xxxx.yyyy");
return proc.Calculate(gxptTarget, gxptOutput, gxptParams, gxptModelInfo); |
Où xxxx.yyyy est un activeX censé exposé la méthode Calculate qui est de la forme (donnée en VB par le constructeur du prog en question):
Code:
1 2 3 4
| Public Function Calculate(ByRef gxptTarget As Variant, _
ByRef gxptOutput As Variant, _
ByRef gxptParams As Variant, _
ByRef gxptModelInfo As Variant) _ As Variant |
Je voudrais, en outre, pouvoir disposer des données envoyées par le prog (tous les variants envoyés sont des tableaux de réels) pour pouvoir les afficher dans Form1.chart sous Delphi.
Non spécialiste, loin s'en faut, des objets com j'ai péniblement réussi dans un premier temps à créer une simple appli conventionnelle delphi (une simple et unique Form1) dans laquelle j'ai défini et exposé la méthode Calculate en créant un objet Automation et de fait, cela fonctionne (la procédure calcule est bien appelée et retourne des valeurs au prog). J'ai cependant un dernier problème: A chaque éxécution de :
Code:
var proc = new ActiveXObject("xxxx.yyyy");
L'ActiveX est créé, Calculate est donc appelée coté delphi grâce au serveur automation et une fenêtre Form1 et créée (et d'ailleurs détruite à la fin puisqu'elles ne s'accumulent pas: il n'y a toujours qu'un seule Form1 vivante,
ce qui semblerait indiquer l'activeX est détruit par le prog à chaque appel).
Comment faire en sorte que Form1 ne soit créée qu'au premier appel de calculate ? cela se définit-il au niveau du javascript (vérifier que l'objet existe pour ne pas le récréer si oui) ou au niveau Delphi ? Ou est-ce tout simplement impossible ?
Quelqu'un a-t-il une idée ?
Cordialement
Eric BEAUMARD