inherited 都干了些什么?(分在其他待答问题中)(10分)

  • 主题发起人 主题发起人 kusanagi
  • 开始时间 开始时间
K

kusanagi

Unregistered / Unconfirmed
GUEST, unregistred user!
分在这里,奇怪为什么一个问题无答案还一定要给分?:)
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1388259
问题:
ttestbutton= class(tbutton)
public
procedure mousemove(var Message: TWMMouseMove)
message WM_MOUSEMOVE;
end;
procedure ttestbutton.mousemove(var Message: TWMMouseMove);
begin
caption:= 'move1';
inherited
//////////就是这里
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
sendmessage(TButton(FindComponent('button2')).Handle, WM_MOUSEMOVE, 0 , 0);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
button2: ttestbutton;
begin
button2:= ttestbutton.create(self);
button2.name:= 'button2';
button2.Parent:= self;
button2.Width:= 100;
button2.Height:= 40;
button2.OnMouseMove:= button1mousemove;
end;

procedure TForm1.Button1MouseMove(Sender: TObject
Shift: TShiftState
X,
Y: Integer);
begin
tbutton(sender).caption:= 'move2';
end;
结果button1点了之后button2的caption为move2,难道inherited把WM_MOUSEMOVE消息继续往夫类传递了???
 
是的。如果是消息处理中的inherited,则这个消息将被父类处理。
如果只是普通的方法,则inherited将调用父类的方法,如果inherited 后省略了方法名,则调用父类同名同参数的方法。
 
inherited
简单的说,就是执行父类的同一过程。
 
谢谢dedema,去http://www.delphibbs.com/delphibbs/dispq.asp?lid=1388259拿分吧。200大洋哦。呵呵
 
接受答案了.
 

Similar threads

I
回复
0
查看
755
import
I
I
回复
0
查看
775
import
I
I
回复
0
查看
525
import
I
后退
顶部