首页 > 其他分享 >类-属性

类-属性

时间:2023-02-27 15:47:39浏览次数:32  
标签:string read TMingRiClass integer 方法 属性

类-属性

​ 一个类中的属性定义了由这个类产生的对象的特征,这种特征能影响对象的可视化行为或者对它的操作。例如对一个TEdit组件米说,Visible属性决定了它是否能被看到,Text属性决定了文本框中的内容等,属性与数据成员的区别在于:

  • 数据成员只表示存储对象中的数据的位置,而属性伴随着读或写数据的方法。
  • 属性可以可视化地进行访问,而数据成员被封装在对象中,不能可视化地进行访问,只能在程序中通过对象方法访问它们。

声明格式为:
property 属性名:属性类型 read 数据成员名/方法名 write 数据成员名/方法名;

(1)访问说明

​ 访问说明是指在属性声明中对属性值的读和写法的说明,用read来说明读方法,用write来说明写方法,一个属性至少要有一个读方法或写方法,如果只有读方法,表示该属性为只读属性,如果只有写方法,表示该属性为只写属性。说明的语法形式为:

read数据成员名/方法名

write数据成员名/方法名

Type
  TMingRiClass=Class
  private
   FCompanyName:string;
   FAddr:string;
   FEmail:string;
   FSort:string;
    function GetAddr:string;
    procedure SetAddr(const Value:string);
  published
  //属性的访问说明全是数据成员
   property CompanyName:string read FCompanyName write FCompanyName;
   property Addr::string read GetAddr Write SetAddr;//属性的访问说明全是方法
   property Email::string read Femail;//只读属性
   property Sort::string write Fsort;://只写属性
end;

function TMingRiClass.GetAddr:string;
begin
  result:=FAddr;
end;

procedure TMingRiClass.SetAddr(const Value:string);
begin
  FAddr:=value;
end;

(2)索引

​ 索引说明用米使多个属性共用一个访问方法,因此,属性声明中访问说明必须说明的是方法,Read后面的方法必须附加一个整型的参数,Write后的过程方法必须在参数表的倒数第二个参数位置附加一个整型的参数。

type
  TMingRiClass=Class
  private
   FPosition:array[0..2]of integer;
    function getposition(const Index:integer):integer;
    procedure setposition(const Index,Value:integer);
  public
   property left:integer index(0) read getposition write setposition;
   property top:integer index(1) read getposition write setposition;
end;

implementation
{TMingRiClass}
function TMingRiClass.getposition(const Index:integer):integer;
begin
  result:=FPosition[Index];
end;

procedure TMingRiClass.setposition(const Index,Value:integer);
begin
  FPosition[Index]:=Value;
end;

标签:string,read,TMingRiClass,integer,方法,属性
From: https://www.cnblogs.com/DQ-MINE/p/17159895.html

相关文章