property中的read,write是什么意思?

read读取此属性的值
write设置此属性的值
delfault默认值
dynamic表明该方法为动态的方法

 

关于property.
在Delphi当中,往往将一个类的变量定义在private或者protected里面,这样外部是访问不到这些变量的。当有需要将某个或者某些变量暴露出来给外界访问,就在pulic区或者published区定义一个property。property后面跟着的read表示外界引用这个property的时候,从什么地方返回值,write表示外界给这个property赋值的时候,把这个值放到什么地方去,default对于写控件才有用,表示属性栏里面显示的该属性的缺省值。例如:

TMyClass = Class
private
  FField1: integer;
  FField2: string;
  FField3: boolean;

  function GetField3: boolean;
  procedure SetField3(AField: boolean);
public
  property Field1: integer read FField1 write FField1;
published
  property Field2: string read FField2;
  property Field3: boolean read GetField3 write SetField3;
end;

implements

function TMyClass.GetField3: boolean;
begin
  //注意这里用FField3而不是Field3.
  result := FField3;
end;

procedure TMyClass.SetField3(AField: boolean);
begin
  //注意这里用FField3而不是用Field3,因为Field3是专门供外部使用的。
  FField3 := AField;
end;


//
//现在你可以这样调用了:
var
  myClass: TMyClass;
  i: integer;
  s: string;
  b: boolean;
begin
  myClass := TMyClass.Create;
  try
    myClass.Field1 := 1;
    i := myClass.Field1;

    s := myClass.Field2;
    myClass.Field2 := '这句出错,因为Field2是只读的,没有Write';

    myClass.Field3 := true; //自动调用TMyClass.SetField3(True)
    b := myClass.Field3;    //自动调用TMyClass.GetField3返回结果给b
  finally
    myClass.Free;
  end;
end;

转载于:https://www.cnblogs.com/Little-Star/p/7485433.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值