我想在Delphi中将某个属性标记为已弃用以便稍后删除。根据Delphi文档,不推荐使用的文档可以附加到任何声明中,但它不适用于属性。有没有办法做到这一点?
这就是我的尝试:
property SomeProp: string
read FSomeProp
write SetSomeProp; deprecated 'Use SomeOtherProp instead';
答案 0 :(得分:27)
不,这是不可能的。根据{{3}},
'提示'指令平台,已弃用和库可能是 附在任何声明中。这些指令将产生警告 编译时间。提示指令可以应用于类型声明, 变量声明,类,接口和结构声明, 类或记录,过程,函数和中的字段声明 方法声明和单位声明。
答案 1 :(得分:0)
你不能这样做,但你可以在属性setter / getter中编写一个已弃用的代码!
所以在你的情况下,你应该像这样创建一个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;