Delphi中窗体的事件
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
当一个窗体创建时,会产生很多事件,同样的,当一个窗体消失时,也会产生很多事件。但这些事件是按什么次序发生的呢?当窗体建立时,发生事件的次序入下:
当一个窗体消失时,发生事件的次序如下:
在大部分情况下,直接保持这个次序不是很重要,但在有些情况下,它就变得至关重要。了解事件处理程序、构造程序和析构程序的调用次序是有好处的,起码当真正需要知道这个次序时,可以避免不必要的尝试。
Delphi中窗体的事件的更多相关文章
- Delphi 中的常用事件
OnActive 焦点称到窗体或控件时发生 OnClick 鼠标单击事件 OnDbClick 鼠标双击事件 OnClose和OnCloseQuery 当关闭一个窗体时就会响应OnClose和OnClo ...
- 转delphi中 formclose的事件 action:=cafree form:=nil分别是什么意思?
转自:http://www.cnblogs.com/jshchg/articles/1929894.html MDI子窗体关闭时用到的(以下摘自Delphi的帮助)caNone The form i ...
- delphi中 formclose的事件 action:=cafree form:=nil分别是什么意思?
MDI子窗体关闭时用到的(以下摘自Delphi的帮助)caNone The form is not allowed to close, so nothing happens.caHide The ...
- Delphi中关于菜单的几个技巧
-- 1将菜单项移到菜单栏的最右边 在一些应用程序中,常把一些特殊的菜单项放在菜单栏的最右边(如WPS2000 中的"定制界面"菜单,一些应用程序的帮助菜单),这些菜单项放在菜单栏 ...
- 在Delphi中应用AOP实现日志功能
AOP现在很火,网上有这许多支持AOP的框架,对于Delphi来说同样也有MeAOP.不过觉得这些框架太复杂了. 现在有一个系统,基本上都快结束了,整体上当然是没有采用什么AOP的框架.对于这样的系统 ...
- Delphi中实现MDI子窗体(转)
Delphi中实现MDI子窗体 用MDI实现浏览子窗口,具有窗口管理功能,同屏观看多个网页的内容 ① 多文档窗体(MDI) MDI窗体是一种具有主子结构的窗体体系,微软的Word便是其中的一 ...
- Delphi 中的全局快捷键+给指定窗体发送按键
[背景] 公司做视频影像采集,平时采集图像的时候都需要打开采集窗口,然后需要开着采集窗口来进行图像采集.同事问我能不能做一个全局快捷键,哪怕我没有操作也可以采集图像.说干就干,一直想做全局快捷键了,网 ...
- DELPHI语法基础学习笔记-Windows 句柄、回调函数、函数重载等(Delphi中很少需要直接使用句柄,因为句柄藏在窗体、 位图及其他Delphi 对象的内部)
函数重载重载的思想很简单:编译器允许你用同一名字定义多个函数或过程,只要它们所带的参数不同.实际上,编译器是通过检测参数来确定需要调用的例程.下面是从VCL 的数学单元(Math Unit)中摘录的一 ...
- Delphi中的窗体创建与销毁
Delphi中的窗体,有模式窗体与非模式窗体两种.两种窗体的调用方式不同,模式窗体使用ShowModal显示,非模式窗体使用Show显示.当显示模式窗体的时候你是不能操作本程序的其他窗体的,你不能把焦 ...
随机推荐
- Js中的对象、构造函数、原型、原型链及继承
1.对象 在传统的面向过程的程序设计中,会造成函数或变量的冗余.而JS中对象的目的是将所有的具有相同属性或行为的代码整合到一起,形成一个集合,这样就会方便我们管理,例如: var person1={ ...
- Hello,DTOS!(下)
如何验证编写的主引导程序?解决方案设计:将汇编源码编译为二进制机器码(nasm)创建虚拟盘(bximage)将二进制代码写入虚拟盘起始位置(dd)在虚拟机中将虚拟盘作为启动盘执行(vmware) 就算 ...
- E09【餐厅】Can I have the bill,please?
核心句型: Can I have the bill ,please? 请给我账单,好吗? 场景对话: A:Excuse me. Can I have the bill ,please? 你好,请给我账 ...
- Cmakelists.txt 的基本框架
# 执行 cmake . # 表示在当前目录下执行 cmake cmake .. # 表示在前一级目录下执行 cmake make # 在当前目录下执行 make # 语法 #1 设置 cmake 版 ...
- (day47)作业
一.链式表达式完成菜单栏 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- LG3812 「模板」线性基 线性基
问题描述 LG3812 题解 线性基是一类擅长解决异或问题的数据结构(也不算数据结构吧...就是一种玄学的东西) 对于数列 \(a\) ,它的线性基 \(d\) 为 出现 \(1\) 的最高位在第 \ ...
- CF908G New Year and Original Order(DP,数位 DP)
又一次降智…… (数位 DP 原来可以写这么短,学到了) 问题可以转化为求数位中 $\ge k$ 的有恰好 $j$ 位的数的个数.设为 $c_{j,k}$. 那么答案就是:(考虑把 $k$ 的贡献拆开 ...
- [LeetCode] 901. Online Stock Span 股票价格跨度
Write a class StockSpanner which collects daily price quotes for some stock, and returns the span of ...
- [LeetCode] 718. Maximum Length of Repeated Subarray 最长的重复子数组
Given two integer arrays A and B, return the maximum length of an subarray that appears in both arra ...
- withDefaultPasswordEncoder() 过时弃用问题
在学springsecurity5.X时,在demo里,内存配置用户的时候,提示withDefaultPasswordEncoder过时,特查看了源码,官方给出的理由是: /** @deprecate ...

