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 ? 有待测试。

 

posted @ 2020-06-18 17:57  海蓝7  阅读(299)  评论(0)    收藏  举报