关于inherited;
procedure Tfm_Login.img1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
inherited;
ReleaseCapture;
Perform(WM_SysCommand,$f017,0);
end;
procedure Tfm_Login.btn_CloseClick(Sender: TObject);
begin
inherited;
close;
end;
上面的这两个 inherited 是表示什么意思 从某代码里面抽出来的
[解决办法]
1.
inherited;是继承的意思,举个例子吧, 比如有一个窗体TForm1,里面有一个Button1
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage('1');
end;
新建一个窗体TForm2继承TForm1时,即TForm2 = class(TForm1)
则Button1也一并继承下来了,但可以重写Button1事件,即
procedure TForm2.Button1Click(Sender: TObject);
begin
inherited;
showmessage('2');
end;
inherited位置可以随便,只是执行顺序不同吧了,看需要而用; 也可以省去,省去就不会执行父类的代码
如果想不执行父类的代码,子类又不想做什么的话,就加个注释留空代码,像下面这样
否则会执行showmessage('1')
procedure TForm2.Button1Click(Sender: TObject);
begin
//
end;
2.
ReleaseCapture和SetCaPture配对使用
用SetCaPture捕获鼠标事件,比如onmousedown,onmouseover等,然后用ReleaseCapture释放鼠标恢复正常
详细用法/解释不如去百度一下
[解决办法]
inherited是继承,当子类函数重载父类同名函数时,用inherited可以执行父类同名函数代码,提高代码可重用性