我把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,其实它也是一个小页面,甚至也是很多自绘控件的基础类,功能简洁而又强大。
原文:http://www.cnblogs.com/findumars/p/4885156.html