Delphi中窗体的事件

Form窗体可以响应各种各样的时间,在Object Inspector的Events页面中罗列了一大堆,如下图:

下面将要列出一些常用的事件。

1、OnActivate

当窗体被初始激活时,就会发生OnActivate事件,当初始创建窗体或者用户从一个窗体切换到另一个窗体时,就可能激活窗体,Application对象也有一个OnActivate事件,当用户从一个应用程序切换到另一个应用程序时,就会产生此事件。

2、OnClose和OnCloseQuery

当关闭一个应用程序时,就要发出OnClose事件,OnClose事件调用OnCloseQuery事件来看一看是否真的要关闭窗体,如果OnCloseQuery事件返回False,窗体就不会关闭。

3、OnCreate

当窗体初始化创建时,就会发生OnCreate事件,对特定窗体的任何实例,OnCreate事件只发生一次,OnCreate处理程序只是用来执行任何启动任务,这些启动任务对于窗体来说是需要的。

4、OnDestroy

OnDestroy事件是OnCreate的反事件,用来清除窗体动态分配的所有内存,或者做其他一些清理事务。

5、OnDragDrop

当一个对象被拖放到窗体上时,就会发生OnDragDrop事件,如果窗体支持拖放,那么就会对这个事件有所响应。

6、OnMouseDown,OnMouseMove和OnMouseUp

就是窗体上响应鼠标点击和鼠标运行。

7、OnPaint

每当窗体需要重画时,就会发生OnPaint事件,有很多原因会导致这个事件发生。响应这个事件,可以作为应用程序所需要的任何画图,并随时可以显示出来。在大部分情况下,专用组件会自己画图,但有些情况下,我们需要自己动手画图。

8、OnResize

每当重新缩放窗体时,就会发生OnResize事件,响应这个事件可以调整窗体上的组件或者对窗体重画。

9、OnShow

在窗体变成可见之前,就会发生OnShow事件。在窗体显示之前,可以用这个事件完成图昂提需要处理的任何事情。

Note

当一个窗体创建时,会产生很多事件,同样的,当一个窗体消失时,也会产生很多事件。但这些事件是按什么次序发生的呢?当窗体建立时,发生事件的次序入下:

当一个窗体消失时,发生事件的次序如下:

在大部分情况下,直接保持这个次序不是很重要,但在有些情况下,它就变得至关重要。了解事件处理程序、构造程序和析构程序的调用次序是有好处的,起码当真正需要知道这个次序时,可以避免不必要的尝试。

 
分类: IDE

最新文章

  1. 别再为了this发愁了------JS中的this机制
  2. Django中的分页
  3. Redis基础知识之————php-Redis 常用命令专题
  4. maven 添加支持编译jdk1.7
  5. sql语句查询重复的数据
  6. Sublime text2用户自定义配置
  7. 射频识别技术漫谈(7)——ID卡【worldsing笔记】
  8. jquery mobile基本结构搭建
  9. Microsoft Windows 远程权限提升漏洞(CVE-2013-3175)(MS13-062)
  10. log4Net使用的四个步骤
  11. Android View的重绘过程之Measure
  12. Java学习之JDBC 2019/3/10
  13. vue-cli 3.x 开发插件并发布到 npm
  14. .net core 2.1 开源项目 COMCMS dnc版本
  15. JavaScript case 条件语句
  16. Python爬虫实战(二):爬百度贴吧
  17. vim学习笔记(11):vim 去掉<200b>
  18. swift--歌曲播放示例
  19. android极光杀掉程序收不到通知
  20. Python 数据库之间差异对比

热门文章

  1. 目标检测论文解读1——Rich feature hierarchies for accurate object detection and semantic segmentation
  2. html5 localStorage讲解
  3. 代码审计-extract变量覆盖
  4. Java 高级面试题收集
  5. zzPony.ai 的基础架构挑战与实践
  6. pycharm初爬虫
  7. mysql 只有主键能自动增长么
  8. 使用CSS来渲染HTML的表单元素
  9. 关于js的<、>、=、<=、>=的比较
  10. 切换node版本