属性 个整数数组

Property of an Array of Integers

我从 Delphi 中的 Object-Pascal 开始,但是当他们访问数组时我被困在使用基本属性上。我知道简单的数组可能不是处理数据集的最佳方式,但我想先了解基础知识,但我找不到任何基本级别涵盖此主题的文档

这是界面 'code' :

 TExample = class(TObject)
     private
         intArray : array of integer;
         procedure setIntArray(value : integer);
         function getIntArray(index : integer);
     published
         //This is where my problem is
         //E2008 Incompatible types
         property PIntArray : Integer read getIntArray write setIntArray;

         //I tried this way, too
         //Property PIntArray cannot be of type ARRAY
         property PIntArray[Index : Integer] : Integer read getIntArray write setIntArray;
 end;

那么,我该如何解决这个问题?

感谢您的宝贵时间。

您有多种选择。也许最常用的是数组属性。像这样:

type
  TExample = class(TObject)
  private
    FItems: TArray<Integer>;
    function GetItem(Index: Integer): Integer;
    procedure SetItem(Index: Integer; Value: Integer);
  public
    property Items[Index: Integer]: Integer read GetItem write SetItem;
  end;

function TExample.GetItem(Index: Integer): Integer;
begin
  Result := FItems[Index];
end;

procedure TExample.SetItem(Index, Value: Integer);
begin
  FItems[Index] := Value;
end;

此处 getter 和 setter 从数组中读取和写入单个项目。您显然还需要 Count 属性 才能使此类型有用。

我不确定您在哪里查找文档,但可以在这里找到:http://docwiki.embarcadero.com/RADStudio/en/Properties#Array_Properties