linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > Delphi >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·HexToStr函数和StrToHex函数
·Delphi中的进制转换
·delphi轻松设置无边框透明窗体
·delphi第三方控件安装(Ehlib)
·DELPHI组件安装全攻略
·delphi动态创建控件
·开发工具比较Visual C++ VS De
·delphi完整身份证效验程序实例
·delphi中的Format函数详解
·delphi编程获取打印机的打印任
·如何判断文本文件的编码格式
·深入研究Variant数组
·用delphi编写网络游戏的外挂
·Delphi技巧-用户自定义数据类型
·delphi设置控件透明
最新文章
·在应用程序中跟踪MOUSE的坐标
·压缩和修复MS Access 2000文件
·DELPHI 6.0 动画制做
·怎样在Delphi中调用LastError信
·怎样得到主域服务器名称
·怎样利用递归实现删除某一目录
·读出主键下所有项
·如何制作照片底片效果的图像(
·获得Modem的状态
·WebBrowser屏幕滚动的实现,设
·有关字符串处理的小技巧
·Delphi建立键盘鼠标动作纪录与
·Delphi中布尔类型辨析
·DELPHI程序注册码设计
·图形的不规则的Copy
Google
 
如何为Delphi程序添加事件和事件处理器
[ 作者:  加入时间:2007-12-03 14:44:11  来自:Linux联盟收集整理 ]
Delphi是一种功能很强的可视化程序开发工具。我们在使用Delphi开发WINDOWS 应用程序的过程中,虽然Delphi为每个可视化组件都提供了很多属性(Property)和事件(Event),但在实际应用中可能会碰到一些自己需要的特殊事件,这些特殊事件Delphi 又没有提供,这时我们就需要为应用程序添加这些特殊事件。当这些事件发生后,又能马上调用处理这些事件的过程。本文通过实例来说明如何为应用程序添加事件和处理事件的过程。 TtQLinux联盟
TtQLinux联盟
  在Delphi中,事件实际上是专门化的属性,它是一个过程(procedure)的指针。要添加事件,首先应在所定义的类中说明一个用来指向事件过程的指针,该指针的作用是当事件一旦发生,就通过这个指针执行所指向的处理这个事件的过程。最后通过指定符 published公布定义的事件属性以及与之关联的事件处理过程指针。 TtQLinux联盟
TtQLinux联盟
  本例中,FtooBig为定义的事件处理过程指针,OnTooBig为事件属性名。事件处理过程指针FtooBig通过程序的初始化使之指向过程TooBig1。在Delphi的表单(Form1)上放置三个编辑框,分别为Edit1、Edit2和Edit3,放一按钮Button1。程序中设私有整型变量val1、val2和res,变量res用来记录val1和val2的乘积,并用Edit3显示出来。当通过Edit1和Edit2输入的数据有一个大于100时,会触发一个事件,并调用事件处理过程TooBig1显示一个对话框,说明此事件已经发生并已进行处理。源程序代码如下, 该程序在Delphi 3中调试通过。 TtQLinux联盟
TtQLinux联盟
unit Unit1;TtQLinux联盟
interfaceTtQLinux联盟
usesTtQLinux联盟
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,TtQLinux联盟
StdCtrls;TtQLinux联盟
typeTtQLinux联盟
  TForm1 = class(TForm)TtQLinux联盟
    Edit1: TEdit; {输入第一个整数}TtQLinux联盟
    Edit2: TEdit; {输入第二个整数}TtQLinux联盟
    Edit3: TEdit; {输出前二个整数的积}TtQLinux联盟
    Button1: TButton;TtQLinux联盟
    procedure Button1Click(Sender: TObject);TtQLinux联盟
    procedure TooBig1(Sender: TObject); {当事件触发后调用此过程}    TtQLinux联盟
    procedure FormCreate(Sender: TObject);TtQLinux联盟
  privateTtQLinux联盟
    val1,val2,res:integer; {val1和val2存放输入的两个整数,res存放两数的积}TtQLinux联盟
    FTooBig : TNotifyEvent; {定义一个指向事件处理器的指针FTooBig}TtQLinux联盟
    { Private declarations }TtQLinux联盟
  publicTtQLinux联盟
    { Public declarations }TtQLinux联盟
  publishedTtQLinux联盟
    property OnTooBig:TNotifyevent read FTooBig write FTooBig;{定义事件}TtQLinux联盟
  end;TtQLinux联盟
TtQLinux联盟
varTtQLinux联盟
  Form1: TForm1;TtQLinux联盟
TtQLinux联盟
implementationTtQLinux联盟
{$R *.DFM}TtQLinux联盟
TtQLinux联盟
procedure TForm1.Button1Click(Sender: TObject);TtQLinux联盟
beginTtQLinux联盟
  val1 := StrToInt(Edit1.Text);TtQLinux联盟
  val2 := StrToInt(Edit2.Text);TtQLinux联盟
  if (val1< 100) and (val2< 100) thenTtQLinux联盟
  beginTtQLinux联盟
    res := val1*val2;TtQLinux联盟
    Edit3.Text := IntToStr(res);TtQLinux联盟
  endTtQLinux联盟
  elseTtQLinux联盟
  if assigned(FTooBig) then OnTooBig(Self);TtQLinux联盟
end;TtQLinux联盟
TtQLinux联盟
procedure TForm1.TooBig1(Sender: TObject);TtQLinux联盟
beginTtQLinux联盟
  Application.MessageBox('Too Big',' Test Event! ',MB_OK);TtQLinux联盟
end;TtQLinux联盟
TtQLinux联盟
procedure TForm1.FormCreate(Sender: TObject);TtQLinux联盟
beginTtQLinux联盟
  val1:=1;TtQLinux联盟
  val2:=1;TtQLinux联盟
  FTooBig := TooBig1;{使事件处理指针指向事件处理器}TtQLinux联盟
end;TtQLinux联盟
TtQLinux联盟
end. TtQLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·javascript事件驱动模型的不完全剖析  (2007-11-30 13:06:05)
 ·衡量Oracle运行状况的重要依据-等待事件  (2007-11-29 11:24:40)
 ·教你快速掌握基于“等待事件”的性能诊断  (2007-11-28 11:14:08)
 ·ASP.NET 2.0 服务器控件之复合控件事件  (2007-11-27 17:33:02)
 ·Datagrid事件响应  (2007-11-27 17:00:44)
 ·Datagrid键盘事件响应(一)  (2007-11-26 16:38:02)
 ·Datagrid键盘事件响应(二)  (2007-11-26 16:35:49)
 ·Datagrid事件响应(二)  (2007-11-26 16:30:58)
 ·轻松接触Oracle9i中的一个特殊等待事件  (2007-11-22 09:42:36)
 ·如何使用 10203事件 跟踪 Oracle块清除  (2007-11-20 10:23:04)