delphi继承父类窗体中控件的方法应该怎么写?如果子类只有pas文件没有窗体文件dfm的话 -- 一点思考
一、都有窗体的情况下:
B窗体继承于A窗体 同一个控件 ab窗体类中是怎么写的呢?
A中的写法
type TFrmBasePaging = class(TXForm) btnSearch: TBitBtn; procedure btnSearchClick(Sender: TObject);
procedure btnSearchClick(Sender: TObject); procedure TFrmBasePaging.btnSearchClick(Sender: TObject); begin****** end;
B中的写法
type TFrmBasePagingByVehicle = class(TFrmBasePaging) procedure btnSearchClick(Sender: TObject);
procedure btnSearchClick(Sender: TObject); procedure TFrmBasePagingByVehicle.btnSearchClick(Sender: TObject); begin inherited; end;
继承的窗体 文件中这样写:
inherited btnSearch: TBitBtn Left = 835 ExplicitLeft = 835 end
小结:方法都没有放到 public private privated 这些修饰符下,也没有virtual override这些修饰符。和平时的类继承 不一样。
二、一般的类方法继承是这样的:
父类中的 虚方法
procedure ExportAllDataToExcel(); virtual; procedure Initial(); virtual; //窗体 Create 是调用
子类中可以重写override 或者不重写
procedure Initial(); override; function CheckInputInfo: Boolean; override;
procedure TFrmBasePagingByVehicle.Initial; begin inherited; FCommnoS := TList<string>.Create; end;
三、如果A有窗体,B没有窗体只有pas文件,B想继承A中的方法,应该如何写呢? 是不是类似 一 中那样写就可以了,不用写override ? 有待测试。

浙公网安备 33010602011771号