是否可以将属性的读/写具有不同的可见性?

时间:2011-04-01 15:27:16

标签: delphi language-features

正如问题所说......是否可以在不同的可见性水平上声明属性的读/写。如果是这样,语法是什么?

以下内容:

  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;

如果存在这种可能性,我只是好奇。

2 个答案:

答案 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;