如何让 IDE 知道我使用了祖先变量?

How to let the IDE know that I use ancestor variable?

为简单起见,我只有2个类 TParentTChild.

TParent = class
protected
  FValue : Integer;
end;
TChild = class(TParent)
public
  property Value : Integer read FValue;
end;

如果 TChild 属性 Value 使用另一个单元中的 TParent 变量 FValue,则 IDE 总是创建新的使用自动完成时的变量,这在添加新属性或方法时会出现问题,并可能导致不必要的错误。

TChild = class(TParent)
private
  FValue: Integer;
public
  property Value : Integer read FValue;
end;

但是,如果 TParentTChild 在同一单元中,则一切正常。如果我无法将两个 类 移动到同一个单元,有什么办法可以防止这种情况发生?此外,我无法访问包含 TParent 的单元。在这种情况下,TChild 是从 TCustomGrid.

派生的组件

这只是继承的本质,更具体地说,是字段可见性。简单的解决方案是引入一个具有更高可见性的 属性 getter 函数。例如...

TParent = class
protected
  FValue : Integer;
public
  function GetValue: Integer;
end;

TChild = class(TParent)
public
  property Value : Integer read GetValue;
end;

...

function TParent.GetValue: Integer;
begin
  Result:= FValue;
end;

代码完成只是遵循这些相同的规则 - 它不具有父字段的可见性,因此它会生成一个新字段。