我有一个从TParent派生的类TChild。TParent有一个属性MyProp,它读取和设置数组中的一些值。当然,这个属性是由TChild继承的,但是我想在孩子的属性中添加一些额外的处理。下面的代码更好地解释了我想要做的事情,但它不起作用。我如何实现它?
TParent = class...
private
function getStuff(index: integer): integer; virtual;
procedure setStuff(index: integer; value: integer); virtual;
public
property MyProp[index: integer] read GetStuff write SetStuff
end;
TChild = class...
private
procedure setStuff(index: integer; value: integer); override;
function getStuff(index: integer): integer; override;
public
property MyProp[index: integer] read GetStuff write SetStuff
end;
procedure TChild.setStuff(value: integer);
begin
inherited; // <-- execute parent 's code and
DoMoreStuff; // <-- do some extra suff
end;
function TChild.getStuff;
begin
result:= inherited; <---- problem was here
end;发布于 2009-12-18 02:55:28
解决了。子函数实现错误。基本上,这些代码是有效的。解决方案是:
Result := inherited getStuff(Index);https://stackoverflow.com/questions/1923747
复制相似问题