Возможно ли иметь чтение / запись свойства, чтобы иметь различную видимость? - PullRequest
8 голосов
/ 01 апреля 2011

Как говорится в вопросе ... возможно ли объявить чтение / запись свойства с разным уровнем видимости.Если да, какой будет синтаксис?

Что-то вроде:

  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 ]

8 голосов
/ 01 апреля 2011

Нет, вам нужно разделить его на два отдельных свойства (с разными именами), хотя они могут ссылаться на одно и то же личное поле.

3 голосов
/ 01 апреля 2011

Нет, это невозможно.Однако я не уверен, зачем вам это нужно.

Единственная причина, которую я вижу, это сделать ее доступной только для чтения, но при этом разрешить ее публикацию и просмотр в Инспекторе объектов,уже могу это сделать:

private
  procedure SetMyProp(Value: String);
published
  MyProp: string read FMyProp write SetMyProp;

...
procedure TMyComponent.SetMyProp(Value: String);
begin
  //
end;
...