整数数组的属性

时间:2015-10-06 09:26:44

标签: delphi-xe3 delphi

我从Delphi中的Object-Pascal开始,但是当他们访问数组时我会陷入使用基本属性的困境。我知道简单的数组可能不是处理数据集的最佳方式,但我想首先获得基础知识,而且我找不到任何基本层面涵盖此主题的文档

所以这是界面'代码':

 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;

那么,我怎么能解决这个问题?

感谢您的时间。

1 个答案:

答案 0 :(得分:4)

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

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