属性 个整数数组
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
我从 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