首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于inherited;解决办法

2012-09-13 
关于inheritedprocedure Tfm_Login.img1MouseDown(Sender: TObject Button: TMouseButtonShift: TShift

关于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可以执行父类同名函数代码,提高代码可重用性

热点排行