正如问题所说......是否可以在不同的可见性水平上声明属性的读/写。如果是这样,语法是什么?
以下内容:
protected
property MyProp : Integer write FMyProp;
public
property MyProp : Integer read FMyProp;
end;
它不是一个主要的语言功能,它很容易被
取代protected
procedure SetMyProp(Value : Integer);
public
property MyProp : Integer read FMyProp;
end;
如果存在这种可能性,我只是好奇。
答案 0 :(得分:8)
不,您必须将其拆分为两个单独的属性(具有不同的名称),尽管它们可以引用相同的私有字段。
答案 1 :(得分:3)
不,这是不可能的。但是,我不确定你为什么需要那样做。
我能看到的唯一原因是让它只读,同时仍允许它在Object Inspector中发布和查看,你已经可以这样做了:
private
procedure SetMyProp(Value: String);
published
MyProp: string read FMyProp write SetMyProp;
...
procedure TMyComponent.SetMyProp(Value: String);
begin
//
end;