TControl.WMLButtonUp的inherited的作用

procedure TControl.WMLButtonUp(var Message: TWMLButtonUp);
begin
inherited;
if csCaptureMouse in ControlStyle then MouseCapture := False;
if csClicked in ControlState then
begin
Exclude(FControlState, csClicked);
if PtInRect(ClientRect, SmallPointToPoint(Message.Pos)) then Click;
end;
DoMouseUp(Message, mbLeft);
end;

时间: 2025-01-04 07:34:24

TControl.WMLButtonUp的inherited的作用的相关文章

QT信号槽与Delphi事件的对比

最近学QT,对信号槽机制感到有点新鲜: QObject::connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int))); 自己总结其原理,就是一句话:把两个对象的函数相关(往往是设置同一个值),而不用考虑两个对象之间的关系,而且可以一对多发信号.缺点是,事先要规定哪些函数可以信号,哪些函数是槽.而且执行内容貌似有点单调. 这一机制号称先进,但Delphi里其实也有,而且应该更强大,因为信号源可以任意指定.而且设计时可以,动

javaweb 之 代理模式

一.动态代理 1.1.代理模式 什么是代理模式及其作用 Proxy Pattern(即:代理模式),23种常用的面向对象软件的设计模式之一 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 优点: (1).  职责清晰 真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简洁清晰. (2).  代理对象可以在客户端和

什么是注解?

------------------------------------ Annotation是从JDK5.0开始引入的新技术. Annotation的作用: - 不是程序本身,可以对程序做出解释.(这一点,跟注释没什么区别)   - 可以被其他程序(比如:编译器等)读取.(注解信息处理流程,是注解和注释的重要区别.如果没有注解信息处理流程,则注解毫无意义) Annotation的格式:      - 注解是以"@注释名"在代码中存在的,还可以添加一些参数值,例如: @Suppress

Delphi 通过Access Violation地址错误找到错误的哪行代码

什么是 MAP 文件?简单地讲, MAP 文件是程序的全局符号.源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方.任何时候使用,不需要有额外的程序进行支持.而且,这是唯一能找出程序崩溃的地方的救星. DELPHI下生成MAP文件的方法:生成详细的MAP信息的方法(二选一) 1. project -> options -> Linker -> Map file 选择detailed. 2. D:\Fred\Code\DELPHI\MyPas\ErrLineByAddr2>d

inherited在消息中的作用

好奇一下.看来Object Pascal确实与Windows深入结合了. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; const UM_Test = WM_USER + 100; type TForm1 = class(TForm) Button1: TButton; proced

TControl的消息覆盖函数大全(15个WM_函数和17个CM_函数,它的WndProc就处理鼠标与键盘消息)

注意,这些函数只有Private一种形式(也就是不允许覆盖,但仍在动态表格中): TControl = class(TComponent) private // 15个私有消息处理,大多是鼠标消息.注意,消息函数大多只是一个中介,且TWinControl并不重写. procedure WMNCLButtonDown(var Message: TWMNCLButtonDown); message WM_NCLBUTTONDOWN; procedure WMLButtonDown(var Messa

TWinControl.DefaultHandler里的CallWindowProc还挺有深意的,TButton对WM_PAINT消息的处理就是靠它来处理的(以前不明白为什么总是要调用inherited,其实就是没有明白TWinControl.DefaultHandler的真正用处,而且还很有用)

我忽然发现:TButton既没有处理WM_PAINT,又没有Paint()或者PaintWindow(),那么它是什么时候被绘制的? Form1上放2个TButton,然后设置代码: procedure TForm1.Button1Click(Sender: TObject); begin button2.Repaint; end; procedure TForm1.Button2Click(Sender: TObject); begin ShowMessage('good'); end; 在F

注解的作用(一)

最近在看注解的内容,在网上找到一篇文章,写的还是蛮不错的,把基础的应用都写出来了.收藏一下.转载地址:http://blog.sina.com.cn/s/blog_93dc666c0101gzn5.html 看到注解突然想到对象/关系映射功能,自动生成数据库表,存储javaBean对象. 有时间结合资料对这方便做一个分析(!!!!!). ava 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后

TControl与Windows消息

TControl将系统消息转换成VCL事件,以将系统消息融入VCL中.鼠标的事件就是一个很好的例子,当我们单击鼠标时会产生鼠标的单击消息,而这个单击消息是怎么被处理并执行的呢? 在Control单元中有这样的一段代码: 1 TControl = class(TComponent) 2 private 3 ... 4 FControlState: TControlState; //状态 //TControlState = set of (csLButtonDown, csClicked, ....