Bonjour,
j'ai une class TRate descendant de IDispatch et TAutuObject;

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
Type
    IRate = interface(IDispatch)
    ['{60B5A5D1-5BA9-4D28-BBF9-DD5BE2B83ED2}']
    function Get_Minimum: Double; safecall;
    procedure Set_Minimum(Value: Double); safecall;
    function Get_Maximum: Double; safecall;
    procedure Set_Maximum(Value: Double); safecall;
    property Minimum: Double read Get_Minimum write Set_Minimum;
    property Maximum: Double read Get_Maximum write Set_Maximum;
  end;
 
  TRate = class(TAutoObject, IRate)
  protected
    function Get_Maximum: Double; safecall;
    function Get_Minimum: Double; safecall;
    procedure Set_Maximum(Value: Double); safecall;
    procedure Set_Minimum(Value: Double); safecall;
  public
    fMaximum,fMinimum:double;
    destructor Destroy; override;
  end;
J'ai ensuite g_Rate un tableau d'objet de type TRate. Je dois y accéder via IEnumerator et la Property Current.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
function TRateEnum.Get_Current: OleVariant;
begin
  result:= g_Rate[fAxe,fIndex-1];
end;
Le retour de Get_Current est standardisé car c'est un descendant de IEnumerator, donc retour par OleVariant. J'obtiens une erreur de compilation car le type TRate est incompatible avec OleVariant.
Je suis un peu coincé.