我把Delphi常用的几个类的事件都收集齐了,并一一加以注释。原因是在自定义的过程中,看到那堆长长的事件列表感到头晕,但是如果不发布这些事件的话,更是暴殄天物。所以关键还是要对这些事件非常熟悉,才能不头晕,才能如臂使指!

  TControl = class(TComponent)    // 控件的Windows功能从TControl开始
private
// ------------ 事件声明(18个事件,大多数是鼠标事件)------------
FOnResize: TNotifyEvent;
FOnCanResize: TCanResizeEvent;
FOnConstrainedResize: TConstrainedResizeEvent;
// 停泊与拖动
FOnStartDock: TStartDockEvent;
FOnEndDock: TEndDragEvent;
FOnStartDrag: TStartDragEvent;
FOnEndDrag: TEndDragEvent;
FOnDragDrop: TDragDropEvent;
FOnDragOver: TDragOverEvent;
FOnContextPopup: TContextPopupEvent;
// 鼠标事件
FOnClick: TNotifyEvent;
FOnDblClick: TNotifyEvent;
FOnMouseWheel: TMouseWheelEvent;
FOnMouseWheelDown: TMouseWheelUpDownEvent;
FOnMouseWheelUp: TMouseWheelUpDownEvent;
FOnMouseDown: TMouseEvent;
FOnMouseMove: TMouseMoveEvent;
FOnMouseUp: TMouseEvent;
// super 发现所有成员数据都是私有的,万一要需要使用,可以用属性来公开
protected
// 18个保护事件
property OnClick: TNotifyEvent read FOnClick write FOnClick stored IsOnClickStored;
property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;
property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown;
property OnMouseMove: TMouseMoveEvent read FOnMouseMove write FOnMouseMove;
property OnMouseUp: TMouseEvent read FOnMouseUp write FOnMouseUp;
property OnMouseWheel: TMouseWheelEvent read FOnMouseWheel write FOnMouseWheel;
property OnMouseWheelDown: TMouseWheelUpDownEvent read FOnMouseWheelDown write FOnMouseWheelDown;
property OnMouseWheelUp: TMouseWheelUpDownEvent read FOnMouseWheelUp write FOnMouseWheelUp;
//
property OnCanResize: TCanResizeEvent read FOnCanResize write FOnCanResize;
property OnConstrainedResize: TConstrainedResizeEvent read FOnConstrainedResize write FOnConstrainedResize;
property OnContextPopup: TContextPopupEvent read FOnContextPopup write FOnContextPopup;
property OnDragDrop: TDragDropEvent read FOnDragDrop write FOnDragDrop;
property OnDragOver: TDragOverEvent read FOnDragOver write FOnDragOver;
property OnEndDock: TEndDragEvent read FOnEndDock write FOnEndDock;
property OnEndDrag: TEndDragEvent read FOnEndDrag write FOnEndDrag;
property OnResize: TNotifyEvent read FOnResize write FOnResize;
property OnStartDock: TStartDockEvent read FOnStartDock write FOnStartDock;
property OnStartDrag: TStartDragEvent read FOnStartDrag write FOnStartDrag;
public
// super 发现所有成员数据都是私有的,万一要需要使用,可以用属性来公开
// 构造函数等等,但没有公共事件
published
// 9个发布属性,但都不是事件
end TWinControl = class(TControl)
private
// 9个事件,图形控件也有
FOnEnter: TNotifyEvent;
FOnExit: TNotifyEvent;
FOnKeyDown: TKeyEvent;
FOnKeyPress: TKeyPressEvent;
FOnKeyUp: TKeyEvent;
FOnGetSiteInfo: TGetSiteInfoEvent;
FOnDockDrop: TDockDropEvent;
FOnDockOver: TDockOverEvent;
FOnUnDock: TUnDockEvent;
protected
// 9个保护事件
property OnDockDrop: TDockDropEvent read FOnDockDrop write FOnDockDrop;
property OnDockOver: TDockOverEvent read FOnDockOver write FOnDockOver;
property OnEnter: TNotifyEvent read FOnEnter write FOnEnter;
property OnExit: TNotifyEvent read FOnExit write FOnExit;
property OnGetSiteInfo: TGetSiteInfoEvent read FOnGetSiteInfo write FOnGetSiteInfo;
property OnKeyDown: TKeyEvent read FOnKeyDown write FOnKeyDown;
property OnKeyPress: TKeyPressEvent read FOnKeyPress write FOnKeyPress;
property OnKeyUp: TKeyEvent read FOnKeyUp write FOnKeyUp;
property OnUnDock: TUnDockEvent read FOnUnDock write FOnUnDock;
public
// 没有公共事件
published
// 没有发布属性
end;

接下来,还有TForm和TPanel。不要小看了TPanel,其实它也是一个小页面,甚至也是很多自绘控件的基础类,功能简洁而又强大。

--------------------------------------------------------------------------------------------------------------

Delphi 中的常用事件

1. OnActive 焦点称到窗体或控件时发生

2. OnClick 鼠标单击事件

3. OnDbClick 鼠标双击事件

4. OnClose和OnCloseQuery 当关闭一个窗体时就会响应OnClose和OnCloseQuery事件 ,OnCloseQuery事件比OnClose具有更高的优先级。

5. OnContextPopup 在窗体上单击鼠标右键时触发

6. OnCreate 建立事件,窗件或控件第一次建立时发生。OnCreate事件只发生一次,用来执行初始化任务

7. OnDeactivate 从当前程序切换到另一个应用程序时发生

8. OnDestroy 卸载窗体或控件时被触发,用来清除窗体或控件所占的内存,或者其他的收尾工作

9. nDragDrop和OnDragOver 如果有外部对象被拖放到控件上时触发

10. OnMouseDown和OnMouseUp 响应鼠标在控件上的按下鼠标、释放鼠标的事件

11. OnMouseMove 鼠标在控件上移动时被触发的事件

12. OnHide 窗体或控件隐藏时触发的事件

13. OnKeyDown、OnKeyPress、OnKeyUp 响应键盘事件

14. OnPaint 窗体或控件需要重画时发生

15. OnResize 窗体或控件调整大小时被触发的事件。当使用极大化、极小化按钮时此事件也会被触发

16. OnShow 窗体或控件显示出来之前发生的事件

17. OnMeasureItem 在ComboBox控件中改变选择项时发生的事件

18. OnChange 在文本框、Image、ScrollBar等控件中的值被改变时发生

19. OnScroll 拖动滚动条时被触发

20. OnBandDrag和OnBandMove 当ControlBar内的对象被拖动和移动时触发

21. OnActivate 焦点移到窗体上时触发

22. OnClick 单击窗体或组件触发

23. OnDblClick 双击窗体或组件触发

24. OnCloseQuery 使用者试图关闭窗体触发

25. OnClose 窗体关闭后才触发

26. OnCreate 窗体创建时触发

27. OnDragDrop 鼠标拖放操作结束时触发

28. OnDragOver 有其他控件从他上面移过触发

29. OnMouseDown 按下鼠标键时触发

30. OnMouseUp 释放鼠标键时触发

31. OnMouseMove 移动鼠标时触发

32. OnHide 隐藏窗体时触发

33. OnKeyDown 按下键盘某键时触发

34. OnKeyPress 按下键盘上的单个字符键时触发

35. OnKeyUp 释放键盘上的某键时触发

36. OnPaint 窗体上有新部分暴露出来触发

37. OnResize 重新调整窗体大小触发

38. OnShow 在窗体实际显示之前瞬间触发

Delphi事件列表赏析(38个事件,必须要对这些事件非常熟悉,才能如臂使指,才能正确发布到新控件!)的更多相关文章

  1. Delphi XE2 新控件 布局Panel TGridPanel TFlowPanel

    Delphi XE2 新控件 Firemonkey 布局Panel Windows平台VCl TGridPanel TFlowPanel FMX 跨平台 TLayout TGridLayout TFl ...

  2. 处理事件的方式:两种类的覆盖处理(自己管理,覆盖专用事件函数;自己统一管理,覆盖QWidget::Event通用函数),一种对象的处理(父控件统一管理,即安装过滤器),两种全局处理(QCoreApplication安装过滤器;覆盖notify方法)

    虽然只有一句话,但却是我自己的心得. 特别注意,bool QCoreApplication::notify(QObject *receiver, QEvent *event) 明确指明了要发送的对象, ...

  3. C#中combobox 控件属性、事件、方法

    一 .combobox 属性.事件.方法公共属性 名称 说明 AccessibilityObject 获取分配给该控件的 AccessibleObject. AccessibleDefaultActi ...

  4. 《纵向切入ASP.NET 3.5控件和组件开发技术》笔记:高效率事件集合对象

    在之前讲的几个例子中,使用的是最普通的定义事件方法,比如KingTextBox中事件是这样定义的:/// <summary>/// 获得本书更多内容,请看:/// http://blog. ...

  5. C# 有关控件、自定义类事件中的委托链的获取、移除操作

    直接来代码吧,这样干脆直接,也不耽误我午休了.一切尽在源码中. public class ControlEventTool { /// <summary> /// 移除控件的某类事件, 如 ...

  6. Windows控件的属性与事件

    Treeview控件重要属性和事件 属性 说明 Nodes Treeview控件中所有树节点 SelectdNode 当前Treeview控件中选定的树节点,如果当前没有选定树节点,返回值为null ...

  7. Android简单的ListViewDemo及每个控件的点击事件

    ListView是什么? ListView是一个 数据控件,可以展示从数据库中读取的数据.是.net3.5的新控件. 它比gridview更灵活,而且支持多种模板,支持分页. 文章地址 http:// ...

  8. atitit.组件化事件化的编程模型--服务端控件(1)---------服务端控件与标签的关系

    atitit.组件化事件化的编程模型--服务端控件(1)---------服务端控件与标签的关系 1. 服务器控件是可被服务器理解的标签.有三种类型的服务器控件: 1 1.1. HTML 服务器控件  ...

  9. 《zw版·delphi与halcon系列原创教程》zw版_THImagex控件函数列表

    <zw版·delphi与halcon系列原创教程>zw版_THImagex控件函数列表 Halcon虽然庞大,光HALCONXLib_TLB.pas文件,源码就要7w多行,但核心控件就是两 ...

随机推荐

  1. 让PV10000+的秘诀

    原文地址:http://www.phonegap100.com/article-410-1.html 让PV10000+的秘诀 2015-5-4 21:49| 发布者: admin| 查看: 122| ...

  2. 高德JAVA笔试题

    1.常用的RuntimeException. 2.叙述RuntimeException和一般异常的异同. 3.叙述ArrayList.Vector和LinkedList各自的特点和特性. 4.什么是反 ...

  3. Hadoop生态圈技术图谱

    当下Hadoop已经成长为一个庞大的体系,貌似只要和海量数据相关的,没有哪个领域缺少Hadoop的身影,下面是一个Hadoop生态系统的图谱,详细的列举了在Hadoop这个生态系统中出现的各种数据工具 ...

  4. O - 覆盖的面积 - hdu 1255(求面积)

    分析:求一层的面积覆盖是非常简单的事情,不过多层面积覆盖应该怎么搞???也是比较简单的事情,只需要用两个变量记录就好了,一个记录覆盖一次的,一个记录覆盖两次的,就很容易解决了 ************ ...

  5. cocos 的CCScheduler模块

    scheduleSelector函数->查找m_pHashForTimers是否有存储回调的Obj类实例,否,创建新条目tHashTimerEntry,指向回调类实例,tHashTimerEnt ...

  6. spring中获取Bean

    在测试类中我们获取已经装配给容器的Bean的方法是通过ApplicationContext,即 ApplicationContext ac=new ClassPathXmlApplicationCon ...

  7. 数组对象元素的添加,String对象,BOM对象以及文档对象的获取

    数组对象的删除有三种方法: pop();        //移除最后一个元素并返回该元素值shift();      //移除最前一个元素并返回该元素值,数组中元素自动前移splice(0,2); / ...

  8. (转)pem, cer, p12 and the pains of iOS Push Notifications encryption

    转自:http://cloudfields.net/blog/ios-push-notifications-encryption/ The serious pains of setting up a ...

  9. 手游架构-REST架构

    REST架构风格是全新的针对Web应用的开发风格,是当今世界最成功的互联网超媒体分布式系统架构,它使得人们真正理解了Http协议本来面貌.随着 REST架构成为主流技术,一种全新的互联网网络应用开发的 ...

  10. Ubuntu16.04下部署 nginx+uwsgi+django1.9.7(虚拟环境pyenv+virtualenv)

    由于用的新版本系统,和旧的稍有差别,在网上搜了很多相关资料,搞了三天终于搞好在Ubuntu16.04下的部署,接下来就详细写写步骤以及其中遇到的问题.前提是安装有虚拟环境pyenv+virtualen ...