说我有
type
TLight = class
private
Ftimer : TTimer;
property IsAutoRotating: Boolean read Ftimer.Enabled;
显然,这不能编译,但是为什么不能编译以及如何解决(最好不要将该状态保存在单独的var中)。
最佳答案
您的代码无法编译,因为属性读写说明符必须引用该类的字段或方法。 Ftimer.Enabled
都不是。
要实现IsAutoRotating
属性,您需要创建一个getter函数:
type
TLight = class
private
Ftimer : TTimer;
function GetIsAutoRotating: Boolean;
public
property IsAutoRotating: Boolean read GetIsAutoRotating;
end;
function TLight.GetIsAutoRotating : Boolean;
begin
Result := Ftimer.Enabled;
end;