组件的事件
事件(Event),就是预先定义好的、能够被对象识别的动作,如单击(OnClick)事件、双击(OnDblClick)事件、移动鼠标(OnMouseMove)事件等,不同的组件能识别的事件也不相同。 组件的事件是固定的,用户不能建立新的事件,所以 Delphi 提供了丰富的内部事件,这些事件足以应付 Windows 中的绝大部分操作需要。 事件过程(Event Procudure)是程序员为处理特定事件而编写的一段程序。当事件由用户触发(如OnClick)或由系统触发(如 OnActivate)时,组件就会对该事件做出响应(Respond)。响应某个事件后所执行的程序代码就是事件过程。 一个组件可以识别一个或多个事件,因此可以使用一个或多个事件过程对用户或系统的事件做出响应。虽然一个组件可以拥有多个事件过程,但在程序中要使用多少事件过程,则由程序员根据程序的具体要求来决定。对于必须响应的事件需要编写该事件的事件过程,而不必理会的事件则不需要编写事件过程,只要交给默认处理程序即可,例如命令按钮的OnClick 事件是最重要的事件,而 OnMouseDown 事件则可有可无,全视设计人员的需要。 有些事件对所有组件也是通用的,这些事件可以是与键盘有关的事件,也可以是与光标输入有关 的事件,还可以是由于组件本身的状态改变(属性)或组件发生了某种行为(操作)而触发的事件。 其中与键盘和光标相关的事件常常是大多数组件的共有事件。一些通用的事件及说明如下:
OnCanResize: 很多组件 发生在组件改变大小时,并允许用户停止操作 OnChange: 很多组件 发生在对象或其他数据改变时 OnClick: 大部分组件 发生在光标单击组件时 OnDblClick: 很多组件 发生在光标双击组件时 OnDragDrop: 大部分组件 发生在组件上拖动操作终止时,该事件由受拖动操作的组件发送 OnDragOver: 大部分组件 发生在用户在组件上拖动鼠标时 OnEndDock: 大部分组件 发生在当前组件的停放操作结束时 OnEndDrag: 大部分组件 发生在拖动终止时,该事件由启动拖动操作的组件发送 OnEnter: 所有窗口组件 发生在组件被激活时,即组件接受焦点时 OnExit: 所有窗口化组件 发生在组件失去焦点时 OnGetSiteInfo: 窗口化组件 返回组件的停放信息 OnKeyDown: 窗口组件 发生在按住键不松时,该事件向具有输入焦点的组件发送 OnKeyPress: 窗口组件 发生在按键过程时,该事件向具有输入焦点的组件发送 OnKeyUp: 窗口组件 发生在松开键时,该事件向具有输入焦点的组件发送 OnMouseDown: 大部分组件 发生在按下光标时,向鼠标光标所在组件发送 OnMouseMove: 大部分组件 发生在移动光标时,向鼠标光标所在组件发送 OnMouseUp: 大部分组件 发生在释放光标时,向鼠标光标所在组件发送 OnMouseWheel: 窗口化组件 发生在用户转动鼠标轮时,向鼠标光标所在的组件发送 OnMouseWheelDown: 窗口化组件 发生在用户向后转动鼠标轮时,向鼠标光标所在的组件发送 OnMouseWheelUp: 窗口化组件 发生在用户向前转动鼠标轮时,向鼠标光标所在的组件发送 OnResize: 大部分组件 发生在改变大小操作结束时 OnStartDock: 大部分组件 发生在用户启动停放时 OnStartDrag: 大部分组件 发生在组件开始被拖动时 OnUnDock: 窗口化组件 发生在一个组件在当前组件上解除停放时
组件的方法
方法(Method), 是与组件相关联的过程与函数的统称,即在组件中说明的并且用户可以调用的公共函数和过程,由系统内部定义,而不用编写代码。方法用于完成某种特定的功能而不能响应某一事件,如组件移动(Move)、画线(Line)、显示(Show)等。 每个方法可以完成某个功能,但其实现步骤和细节用户既看不到也不能修改,用户能做的工作就是按照约定直接调用它们。 方法也被“ 封装” 在组件之中,不同的组件具有不同的内部方法。组件的方法在对象编辑器中是找不到的,只有在编辑代码时才能够获得。有的对象方法在所有的组件中都能使用,而有些只能被组件使用。大多数组件共有的对象方法,如下表: