试图改写TForm1(注意,不是TForm类)的WndProc函数,从而达到某些目的。程序如下:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs; type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
procedure WndProc(var message:TMessage); override; // 如果漏写override,TForm1的WndProc函数将不起作用。原因是,TObject努力把消息发到TForm1里来,试图调用TForm1的虚函数WndProc,结果在它的虚函数列表中没有找到此函数(因为名称被占用,因此VMT列表里不再有它),于是就回到TForm1的上级,即TForm,找到了后者的WndProc,执行,当然没有任何特殊的自定义动作。
// 还有另一种可能,即VMT和普通函数里都有一个叫做WndProc的函数。但是VMT里的那个函数没有被改写,因此不执行任何动作。偏偏TObject是发消息给它的。
end; var
Form1: TForm1; implementation {$R *.dfm}
procedure TForm1.WndProc(var message:TMessage);
begin
if message.msg =WM_LBUTTONDOWN then ShowMessage('ddd')
else inherited WndProc(Message);
end; end.

WndProc漏写override会发生什么情况?的更多相关文章

  1. JAVA中继承时方法的重载(overload)与重写/覆写(override)

    JAVA继承时方法的重载(overload)与重写/覆写(override) 重载-Override 函数的方法参数个数或类型不一致,称为方法的重载. 从含义上说,只要求参数的个数或参数的类型不一致就 ...

  2. Error-MVCr:找到了多个与 URL 匹配的控制器类型。如果多个控制器上的特性路由与请求的 URL 匹配,则可能会发生这种情况。

    ylbtech-Error-MVCr:找到了多个与 URL 匹配的控制器类型.如果多个控制器上的特性路由与请求的 URL 匹配,则可能会发生这种情况. 1.返回顶部 1. 找到了多个与 URL 匹配的 ...

  3. 找到多个与名为“xxx”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由没有指定命名空间以搜索与此请求相匹配的控制器,则会发生这种情况。

    一次在建MVC 项目的进行开发的时候,因为后来想到了一个更好的项目名称,就把 Web项目的名称重命名 改了, 然后 程序集名称,默认命名空间,都改成新的了,刚建立的项目本身也不大,运行起来,总是报 & ...

  4. HihoCoder1649 : 漏写的数字([Offer收割]编程练习赛38)(模拟题)

    描述 小A今年刚上幼儿园,正在学习写100以内的数字.幼儿园的老师留了一项作业,要求小A从某个100以内的数X开始一直写到另一个100以内的数Y(Y - X > 1). 不过粗心的小A在作业中漏 ...

  5. 万答#13,MySQL自增键用完后,插入数据会发生什么情况

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 MySQL自增键用完了,插入数据会发生什么情况 1.实验场景 GreatSQL ...

  6. 内网穿透+VS2015自带IIS express实现本地调试(微信等需要将开发环境暴漏到外网的情况使用)

    今天一个兼职结束了,又要开始寻找新的兼职公司了 ,为了贴补家用啊,为了给儿子更好的生活加油! 抒情完毕进入正题,本篇文章要解决的问题是其实在开发微信支付,微信公众号等回调地址必须是外网可访问的80端口 ...

  7. 两台计算机有相同的IP地址会发生什么情况?两台计算机有相同的MAC地址会发生什么情况?

    1 相同IP   a) 同一网段内   会发生IP地址冲突.两台主机在特定情况下是可以同时使用同一个IP地址的.但是如果这两台主机在同一个网络内,大多数情况下,二者或者其中之一的连通性将会被破坏.比方 ...

  8. 使用filter导致服务器返回的页面始终是空白---在doFilter中漏写了chain.doFilter()

    今天调代码的时候,突然发现,服务器开着,什么都没有问题,当我把下面这个filter给deploy了以后,访问所有的页面就都是空白. 后来发现,是因为在代码路径中,有一条路径没有调用filterChai ...

  9. Swift-重写(Override)

    子类可以为继承来的实例方法(instance method),类方法(class method),实例属性(instance property),或附属脚本(subscript)提供自己定制的实现(i ...

随机推荐

  1. 2017.3.31 spring mvc教程(一)核心类与接口

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  2. linux下编译C/C++

    对所有用户有效在/etc/profile增加以下内容.只对当前用户有效在Home目录下的.bashrc或.bash_profile里增加下面的内容:(注意:等号前面不要加空格,否则可能出现 comma ...

  3. ASP.NET MVC生成安全验证码

    html部分: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  4. MySQL几个性能指标

    近期参加了一个DBA MySQL的分享,主要从MySQL的性能指标分析.同步及运维三个方面分享一些经验,其中,一些经验值还是值得记录下来的: 对于一个MySQL实例,CRUD上限经验值如下: Quer ...

  5. ES7新特性

    Array.prototype.includes Array.prototype.includes用法都容易和简单.它是一个替代indexOf,开发人员用来检查数组中是否存在值,indexOf是一种尴 ...

  6. 【BIEE】02_新建资料库并创建简单分析

    一.新建资料库 1.开始→打开BI管理→点击新建资料库 2.文件→新建资料档案库 下一步 在下面的框中一次填入 连接类型:OCI 10g/11g(直接选择即可) 数据库名称:(DESCRIPTION ...

  7. 強大的Selector框架

    代码地址如下:http://www.demodashi.com/demo/12648.html 前言 在开发的过程中,我们经常会遇到给view设置背景,什么圆形背景啊,圆角背景啊,点击变色背景啊之类的 ...

  8. Java jar转exe

    http://www.blogjava.net/baoyaer/articles/97405.html Java转exe篇: 实现方式:Eclipse搭配JSmooth(免费). 1.先由Eclips ...

  9. .Net、C# 汉字转拼音,简体繁体转换方法

    Visual Studio International Pack 包含一组类库,该类库扩展了.NET Framework对全球化软件开发的支持.使用该类库提供的类,.NET 开发人员可以更方便的创建支 ...

  10. RAD Studio XE8 技术研讨会讲义与范例程序下载

     感谢各位程序猿亲临现场參加我们的公布会,现奉上会议当天的讲义与范例程序供大家參考: 2015/5/25~27北京.深圳 『RAD Studio XE8技术研讨会』 下载讲义:http://pan ...