親の親へのinherited方法は?


KHE00221  2004-09-20 01:39:09  No: 11022  IP: [192.*.*.*]

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)
とし、変更無い所まで全てコピーするしか無いのでしょうか?

編集    削除
bob  2004-09-22 23:03:23  No: 11023  IP: [192.*.*.*]

これではどう?

Component3.xxxx(btn as TComponent)

編集    削除
jam  2004-09-28 09:53:45  No: 11024  IP: [192.*.*.*]

Component2 と Component3 の共通部を持つ上位クラスを作成し、
そこから Component2 と Component3 を派生するのが正しい
処方だと思いますが...

編集    削除