私は商用コンポーネントスイートから派生したコンポーネントに取り組んでおり、これまで考えたことのない課題に直面しました。次のコードスニペットについて考えてみます。
TMyClass = class
protected
procedure SomeMethod; virtual;
end;
TMyClass1 = class(TMyClass)
protected
procedure SomeMethod; override;
end;
TMyMode = (mmOne, mmTwo);
TMyClass2 = class(TMyClass1)
private
FMode: TMyMode;
protected
procedure SomeMethod; override;
public
property Mode: TMyMode read FMode write FMode;
end;
...
procedure TMyClass2.SomeMethod;
begin
if FMode = mmOne then inherited SomeMethod
else inherited TMyClass.SomeMethod;
end;
したがって、Mode = mmOneの場合、通常どおり継承しますが、mmTwoの場合でも、祖先の祖先からコードを継承しますが、祖先に導入されたコードは継承しません。私は上記を試しましたが、成功しませんでしたが、これまでに遭遇したことがないので、不可能だと思います。テイカーはいますか?