我想在Delphi中将某个属性标记为已弃用以便稍后移除。根据Delphi文档,deprecated可以添加到任何声明中,但对于属性似乎不起作用。有没有一种方法可以做到这一点?
以下是我尝试过的:
property SomeProp: string
read FSomeProp
write SetSomeProp; deprecated 'Use SomeOtherProp instead';
我想在Delphi中将某个属性标记为已弃用以便稍后移除。根据Delphi文档,deprecated可以添加到任何声明中,但对于属性似乎不起作用。有没有一种方法可以做到这一点?
以下是我尝试过的:
property SomeProp: string
read FSomeProp
write SetSomeProp; deprecated 'Use SomeOtherProp instead';
SetSomeProp
),你可以将其标记为“不推荐使用”。 - Andreas Rejbrand你不能这样做;不过,你可以在属性的setter/getter中编写已弃用的代码!
因此,在你的情况下,你应该创建一个像这样的SetSomeProp setter:
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;
property SomeProp: string read FSomeProp; deprecated 'Use SomeOtherProp instead';
转换为:
function SomeProp: string; deprecated 'Use SomeOtherProp instead';
function SomeProp: string; deprecated 'Use SomeOtherProp instead';
procedure SetSomeProp(Value: string); deprecated 'Call SomeOtherProp := Value instead';
FValue: Integer deprecated;
),则可以通过属性使用它而_不会_生成警告:例如,property Value: Integer read FValue write FValue;
<--没有警告!!(至少在D2007中)。 - Disillusioned