Component1 = class = (TComponent)
procedure TComponent1.xxxx (A:TComponent);
begin
end;
Component2 = class(TComponent1)
procedure TCormponent2.xxxx (A:TButton);
begin
inherited xxxx(TPanel);
end;
のとき
Component2 を継承し xxxx の TPanel の所を TLabel に変えようと
下記のように変更すると
Component3 = class(TComponent2)
procedure TCormponent3.xxxx (A:TButton);
begin
inherited xxxx(TLabel);
end;
Component3 の inherited は Compoent2 に当然いってしまうのですが、
親の親へ inherited する方法は無いのでしょうか?
やはり
Component3 = class(TComponent1)
とし、変更無い所まで全てコピーするしか無いのでしょうか?
これではどう?
Component3.xxxx(btn as TComponent)
Component2 と Component3 の共通部を持つ上位クラスを作成し、
そこから Component2 と Component3 を派生するのが正しい
処方だと思いますが...
ツイート | ![]() |