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;
write的返回值
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;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论