帮忙看一下这个Warning信息(100分)

  • 主题发起人 主题发起人 CodeSaint
  • 开始时间 开始时间
C

CodeSaint

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在写控件的时候,编译时产生以下编译警告:
[Warning] ParamPanel.pas(17): Method 'MouseDown' hides virtual method of base type 'TControl'
定位到代码上
procedure MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
请问这个警告具体指着什么,如何消除?
 
procedure MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); override;
加最后那个关键字(override;)就OK了.
 
事件必须要属于在某个对象上
procedure MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);


procedure xxxNameClass.MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
 
同意楼上,就是就基类TControl已经有MouseDown这个方法了,
你定义的这个方法刚好是同名的,这种情况下你可以查一下基类的这个方法若定义成虚方法virtual,那么你就可以用override来重载它
 
[Warning] ParamPanel.pas(17): Method 'MouseDown' hides virtual method of base type 'TControl'
这个简单,就是说MOUSEDOWN这个方法隐藏基类的虚方法,,,
那么请用OVERIDE来重载,这是多态的一个表现。。。建议看一下,OOP,,,
 
楼上正解。
要么改名,要么重载并用inherited关键字继承。
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
719
import
I
I
回复
0
查看
948
import
I
I
回复
0
查看
590
import
I
后退
顶部