delphivcl 组件使用整理(三)

组件的事件

    事件(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)等。

    每个方法可以完成某个功能,但其实现步骤和细节用户既看不到也不能修改,用户能做的工作就是按照约定直接调用它们。 

    方法也被“ 封装” 在组件之中,不同的组件具有不同的内部方法。组件的方法在对象编辑器中是找不到的,只有在编辑代码时才能够获得。有的对象方法在所有的组件中都能使用,而有些只能被组件使用。大多数组件共有的对象方法,如下表:

 

        

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值