Как пометить свойство как устаревшее в delphi? - PullRequest
29 голосов
/ 29 февраля 2012

Я хочу пометить свойство в Delphi как устаревшее для удаления позже. Согласно документации Delphi, устаревшая может быть добавлена ​​к любому объявлению, но это не работает для свойств. Есть ли способ сделать это?

Вот что я пробовал:

property SomeProp: string
  read   FSomeProp
  write  SetSomeProp; deprecated 'Use SomeOtherProp instead';

Ответы [ 2 ]

27 голосов
/ 29 февраля 2012

Нет, это невозможно.Согласно документации ,

Директивы 'hint' платформа , устарели , библиотека можетбыть добавлен к любой декларации.Эти директивы будут выдавать предупреждения во время компиляции.Директивы Hint могут применяться к объявлениям типов, объявлениям переменных, объявлениям классов, интерфейсов и структур, объявлениям полей в классах или записях, объявлениям процедур, функций и методов, а также объявлениям модулей.

0 голосов
/ 13 июня 2018

Вы не можете сделать это, однако Вы можете написать устаревший код в установщике / получателе свойств!

так что в вашем случае вы должны создать сеттер SetSomeProp следующим образом:

Type
    TYourClass = class
    private
      procedure DummyDepricated; deprecated 'Use SomeOtherProp instead';
      procedure SetSomeProp(const AValue: string); 
    published
      property SomeProp: string read   FSomeProp write  SetSomeProp; 

    implementation

    procedure TYourClass.SetSomeProp(const AValue: string); 
    begin
      DummyDepricated;
      //the old setter code here
    end;

    procedure TYourClass.DummyDepricated;
    begin
      //this is dummy
    end;
...