[WIN32][D2005/D7][LANGAGE] CITRIX Metaframe MFCOM
Bonjour a tous,
Cela fait 6 jours que je m**dois, avec les objet COM de Metaframe. Sous D7 (puis D2005, pour le FOR ... IN) je n'arrive pas a lister les serveurs d'une batterie. Dans l'urgence j'ai fini le projet en VB6 :oops: .
La question: Quelqu'un a t'il deja utilise le MFCOM sous Delphi ?
Pour info:
- j'ai cree le MetaFrameCOM_TLB.pas depuis mfcom.tlb du RSK citrix.
- La connection COM est Correct, je peux faire des query sur la batterie....
Voici un exemple de code VB qui fonctionne:
Code:
1 2 3 4 5 6 7 8 9
|
Dim theFarm As MetaFrameFarm
Dim aServer As MetaFrameServer
Set theFarm = CreateObject("MetaFrameCOM.MetaFrameFarm")
theFarm.Initialize MetaFrameWinFarmObject
For Each aServer In theFarm.Servers
List1.AddItem (aServer.ServerName)
Next |
en gros c'est la bloucle FOR EACH ou je bloque en Delphi.
code Delphi (2005)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
use
(...),MetaFrameCOM_TLB,(...);
(...)
procedure TForm1.BtListClick(Sender: TObject);
var
thefarm: MetaFrameFarm;
theserver: MetaFrameServer;
i: Integer;
begin
ListBox1.Clear;
try
thefarm := CoMetaFrameFarm.Create;
thefarm.Initialize(MetaFrameWinFarmObject );
ListBox1.AddItem('Batterie: '+ thefarm.FarmName, Self ); // me retourne le nom de la batterie sans probleme.
theserver := CoMetaFrameServer.Create;
for theserver in thefarm.Servers do begin
ListBox1.AddItem('server: '+ theserver.ServerName, Self );
end;
finally
thefarm := nil;
end;
(...) |
la compilation me retourne une erreur:
Code:
[Error] Unit1.pas(44): E2431 for-in statement cannot operate on collection type 'IMetaFrameServers' because 'IMetaFrameServers' does not contain a member for 'GetEnumerator', or it is inaccessible
SVP je suis un :boulet: sur Delphi mais :help: