码迷,mamicode.com
首页 > 编程语言 > 详细

Delphi的类和对象之数组属性和属性的索引(三)

时间:2020-04-17 23:49:44      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:unit   post   ati   property   私有   过程   dex   RoCE   val   

类中使用数组属性,声明方式如下:

property 属性名[参数列表]:属性类型 Read 方法名 Write 方法名;

声明数组属性时要注意:

(1)参数表与过程或函数参数表非常相似,只是用方括号,参数表中的参数类型可以是任何类型。

(2)声明数组属性时,访问说明中在Read 或Write 后面的必须是方法名,不能出现数据成员。

(3)Read 后面的方法参数表的参数类型和顺序必须与属性参数表相同,Write 后得过程方法的参数表中必须列出属性的参数表且与该列表的顺序与属性参数表相同。

    在该过程方法的最后,是一个与属性类型相同的值或常数参数。

(4)数组属性可以通过它的下标访问,下表是传递给读或写方法的参数。

(5)在数组属性的生命中,不能进行存储声明。但可以使用Default 指令符,这时该指令符不是对存储的说明,而是指定当前的属性为类中的默认属性。

示例:

unit Unit4;

interface

type
  Tmyclass = class
  private
    FNumber: array[0..100] of String; //读写方法私有化(get set)
    function GetNuber(x: Integer): String;
    procedure SetNumber(x: Integer; const Value: String);
  public
    property Numbers[x: Integer]:String read GetNuber write SetNumber;//数组属性 public
  end;

implementation

{ Tmyclass }

function Tmyclass.GetNuber(x: Integer): String;
begin
  Result:= FNumber[x];
end;

procedure Tmyclass.SetNumber(x: Integer; const Value: String);
begin
  FNumber[x]:= Value;
end;

end.

 

属性的索引:索引说明用来使多个属性共用一个访问方法来设置属性的值。格式如下:

unit Unit4;

interface

type
  Tmyclass = class
  private
    FPostion: array[0..2]of Integer;
    function getpostion(const Index: Integer): Integer;
    procedure setpostion(const Index, Value: Integer);

  public
    property left: Integer index(0) read getpostion write setpostion;
    property top: Integer index(1) read getpostion write setpostion;
  end;
{属性声明中读写属性的说明必须是方法,read 后面的方法必须附加一个整型的参数,
  write 后的过程方法必须在参数表的倒数第二个参数位置附加一个整型的参数}
implementation

{ Tmyclass }

function Tmyclass.getpostion(const Index: Integer): Integer;
begin
  Result:= FPostion[Index];
end;

procedure Tmyclass.setpostion(const Index, Value: Integer);
begin
  FPostion[Index]:= Value;
end;

end.

 

Delphi的类和对象之数组属性和属性的索引(三)

标签:unit   post   ati   property   私有   过程   dex   RoCE   val   

原文地址:https://www.cnblogs.com/fansizhe/p/12722960.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!