How to use variant arrays in Delphi

后端 未结 2 1485
失恋的感觉
失恋的感觉 2020-12-16 12:51

I have two Delphi7 programs: a COM automation server (EXE) and the other program which is using the automation server.

I need to pass an array of bytes from one prog

2条回答
  •  抹茶落季
    2020-12-16 13:30

    You create it like that:

    Declarations first

    var
      VarArray: Variant;
      Value: Variant;
    

    Then the creation:

    VarArray := VarArrayCreate([0, Length - 1], varVariant);
    

    or you could also have

    VarArray := VarArrayCreate([0, Length - 1], varInteger);
    

    Depends on the type of the data. Then you iterate like this:

    i := VarArrayLowBound(VarArray, 1);
    HighBound := VarArrayHighBound(VarArray, 1);
    
    while i <= HighBound do
    begin
      Value := VarArray[i];
      ... do something ...
      Inc(i);
    end;
    

    Finally you clear the array when you don't need it anymore. EDIT: (This is optional, see In Delphi 2009 do I need to free variant arrays? )

    VarClear(VarArray);
    

    That is all there is to it. For another example look at the official Embracadero Help

    EDIT:

    The array should be created only once. Then just use it like shown in the above example.

提交回复
热议问题