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

Delphi中窗体的事件的更多相关文章

  1. Delphi 中的常用事件

    OnActive 焦点称到窗体或控件时发生 OnClick 鼠标单击事件 OnDbClick 鼠标双击事件 OnClose和OnCloseQuery 当关闭一个窗体时就会响应OnClose和OnClo ...

  2. 转delphi中 formclose的事件 action:=cafree form:=nil分别是什么意思?

    转自:http://www.cnblogs.com/jshchg/articles/1929894.html MDI子窗体关闭时用到的(以下摘自Delphi的帮助)caNone  The form i ...

  3. delphi中 formclose的事件 action:=cafree form:=nil分别是什么意思?

    MDI子窗体关闭时用到的(以下摘自Delphi的帮助)caNone  The form is not allowed to close, so nothing happens.caHide  The ...

  4. Delphi中关于菜单的几个技巧

    -- 1将菜单项移到菜单栏的最右边 在一些应用程序中,常把一些特殊的菜单项放在菜单栏的最右边(如WPS2000 中的"定制界面"菜单,一些应用程序的帮助菜单),这些菜单项放在菜单栏 ...

  5. 在Delphi中应用AOP实现日志功能

    AOP现在很火,网上有这许多支持AOP的框架,对于Delphi来说同样也有MeAOP.不过觉得这些框架太复杂了. 现在有一个系统,基本上都快结束了,整体上当然是没有采用什么AOP的框架.对于这样的系统 ...

  6. Delphi中实现MDI子窗体(转)

        Delphi中实现MDI子窗体 用MDI实现浏览子窗口,具有窗口管理功能,同屏观看多个网页的内容  ① 多文档窗体(MDI) MDI窗体是一种具有主子结构的窗体体系,微软的Word便是其中的一 ...

  7. Delphi 中的全局快捷键+给指定窗体发送按键

    [背景] 公司做视频影像采集,平时采集图像的时候都需要打开采集窗口,然后需要开着采集窗口来进行图像采集.同事问我能不能做一个全局快捷键,哪怕我没有操作也可以采集图像.说干就干,一直想做全局快捷键了,网 ...

  8. DELPHI语法基础学习笔记-Windows 句柄、回调函数、函数重载等(Delphi中很少需要直接使用句柄,因为句柄藏在窗体、 位图及其他Delphi 对象的内部)

    函数重载重载的思想很简单:编译器允许你用同一名字定义多个函数或过程,只要它们所带的参数不同.实际上,编译器是通过检测参数来确定需要调用的例程.下面是从VCL 的数学单元(Math Unit)中摘录的一 ...

  9. Delphi中的窗体创建与销毁

    Delphi中的窗体,有模式窗体与非模式窗体两种.两种窗体的调用方式不同,模式窗体使用ShowModal显示,非模式窗体使用Show显示.当显示模式窗体的时候你是不能操作本程序的其他窗体的,你不能把焦 ...

随机推荐

  1. 网络流之最大流Dinic --- poj 1459

    题目链接 Description A power network consists of nodes (power stations, consumers and dispatchers) conne ...

  2. shell 字符菜单管理

    1.创建一个脚本func.sh 脚本如下func2.sh #!/bin/bash function menu(){ title="My Menu" url="www.la ...

  3. rsync+inotify同步备份

    1.rsync与scp区别 scp无法备份大量数据,先统计文件信息,后进行拷贝,如果文件大小超出磁盘空间,则无法拷贝 rsync边复制,边比较,边统计 2.rsync特点 (1.)支持增量备份 (2. ...

  4. python 环境搭建 python-3.4.4

    第一步:下载和安装python-3.4.4amd.msi 可以去官方网站下载,也可以从网盘下载: 链接:https://pan.baidu.com/s/1dZ9ibgigKPdPUJgykLA_jg ...

  5. hdu3068-最长回文-马拉车(Manacher)算法

    http://acm.hdu.edu.cn/showproblem.php?pid=3068 脑子转个弯总算看懂马拉车算法了.记录一下思路和模板. 马拉车算法是在O(n)的时间内求出最大回文子串. 一 ...

  6. Excel-基本操作

    一.EXCEL的数据类型 1.字符型 2.数值型 3.日期型数据和时间型数据 二.快捷键 ctrl+上下左右健 快速选择某区域  上下左右单元格 ctrl+shift+上下左右 快速选择某个取悦 三. ...

  7. phoenix hbase Can't get master address from ZooKeeper; znode data == null

    问题描述: 项目一直在用的hbase节点  简称h1 由于网络问题,无法使用,重新找了一个网络稳定的节点  z1作为新的hbase库,库名称hbase_test,zookeeper等都配置好后,通过j ...

  8. LeetCode 1257. Smallest Common Region

    原题链接在这里:https://leetcode.com/problems/smallest-common-region/ 题目: You are given some lists of region ...

  9. 解决win10下IIS下"对路径...的访问被拒绝

    解决方案如下: 1.右击文件夹,安全,添加IUSR和IIS_IUSRS安全控制权限. 2.右击文件夹,常规,查看是否只读.将只读属性去掉.

  10. Oracle--RMAN Recover 缺失的归档操作

    一,环境简介 Oracle RMAN 备份的恢复分2个步骤:RESTRE 和 RECOVER.在这里回复的时候是依赖者归档文件的,当周一完成数据全备,保留归档的情况下,后期数据有问题,恢复的时候发现少 ...