我变了一个Edit控件,继承TCustomEdit,改写了Change过程。
procedure TMyEdit.Change;
begin
inhertied Change;
ShowMessage('OnChange'); //永远运行不到这行代码
end;procedure TMyEdit.Change;
begin
inhertied;
ShowMessage('OnChange'); //可以运行到这行代码
end;上面两个过程的区别是什么?非常感谢!!!
procedure TMyEdit.Change;
begin
inhertied Change;
ShowMessage('OnChange'); //永远运行不到这行代码
end;procedure TMyEdit.Change;
begin
inhertied;
ShowMessage('OnChange'); //可以运行到这行代码
end;上面两个过程的区别是什么?非常感谢!!!
解决方案 »
- SQL语言查询出错(两个条件查询)
- 一个关于TdxDBGrid编辑的问题,在线等!
- 关于Tclientsocket的错误?简单问题,欢迎近来讨论!
- 谁能给个源代码及其软件说明文档(如学生信息管理系统,商店会员管理系统,之类都行)
- 批次提交:怎么样一次提交几条记录?急
- 都有谁心情不好,大家进来聊聊!反正心情都很差!
- VG插件的应用环境
- 在Delphi调用Excel中增加一个分页符命令中参数应是什么?如何copy一部分单元格的内容到另一部分?
- 真的没高手吗?中国人的无奈,大富翁又上不去。仅仅是一个简单的问题
- Delphi解密算法翻译为java
- 马甲排队
- 请问用SaveDailogPicture控件怎么存促图片在指定的目录下?
When inherited has no identifier after it, it refers to the inherited method with the same name as the enclosing method. In this case, inherited can appear with or without parameters; if no parameters are specified, it passes to the inherited method the same parameters with which the enclosing method was called
public
procedure change;override;
end;
procedure TMyEdit.change;
begin
inherited Change;
ShowMessage('OnChange');
end;
procedure TMyEdit.change;
begin
inherited ;
ShowMessage('OnChange'); end;
经测试,两种方法都可以运行那句代码,你再试试。
public
procedure change;override;
end;
// ?? 当继承时,delphi 没有自动认为同名函数为override父类的函数么??
应该时会的吧
应该时会的吧
--------------------------------------------
不会,你自己试一下就知道了,没有声明Override,会有警告信息出现
其实Change是一个虚拟函数,如果不用Override,
父类的Change会被子类的Change完全取代而不是实现多态的。