转贴:
TApplication
继承关系:
TObject → TPersistent → TComponent
TApplication组件的属性:
Active
AllowTesting
DialogHandle
ExeName
Handle
HelpFile
Hint
HintColor
HintHidePause
HintPause
HintShortPause
Icon
MainForm
ShowHint
ShowMainForm
Terminated
Title
UpdateFormatSettings
UpdateMetricSettings
从TCompnent继承来的:
ComObject
ComponentCount
ComponentIndex
Components
ComponentState
ComponentStyle
Designlnfo
Name
Owner
Tag
VCLComObject
TApplication组件的方法:
BringToFront
CancelHint
ControlDestroyed
Create
CreateFom
CreateHandle
Destroy
HandleException
HandleMessage
HelpCommand
HelpContext
HelpJump
HideHint
HintMouseMessage
HookMainWindow
lnitialize
MessageBox
Minimize
NormalizeTopMosts
NormalizeAllTopMosts
ProcessMessages
Restore
RestoreTopMosts
Run
ShowException
Terminate
UnhookMainWindow
从TComponent继承来的:
DestroyComponents
Destroying
FindComponent
FreeNotification
FreeOnRelease
GetParentComponent
HasParent
InsertComponent
RemoveComponent
SafeCallException
从TPersistent继承来的:
Assign
GetNamePath
TObject继承来的:
ClassInfo
ClassNarne
ClassNameIs
ClassParent
ClassType
CleanupInstance
DefaultHandler
Dispatch
FieldAddress
Free
Freelnstance
GetInterface
GetInterfaceEntry
GetInterfaceTable
InheritsForm
InitInstance
InstanceSize
MethodAddress
MethodName
NewInstance
TApplication组件的事件:
OnActivate
OnDeactivate
OnException
OnHelp
OnHint
OnIdle
OnMessage
OnMinimize
OnRestore
OnShowHint
Active属性
对应对象:TApplication
声明:property Active: Boolean;
功能:Active属性是用来声明应用程序是否被激活。
Active属性是在运行时有效,它是只读类型的。当应用程序处于激活状态并且具有焦点时,它将返回真,否则将返回假。
例子:
//Place a timer on the form, and change its interval property to 100
procedure TForml.Timer1Timer(Sender: TObject)
begin
if Application.Active = True then
Forml.Caption := ’Application is active’
else Forml.Caption := ’Application is inactive’
end
BringToFront方法
对应对象:TApplication
声明:procedure BringToFront;
功能:BringToFront方法用于将用户的应用程序的主窗体窗口放置到Windows Desktop上的其他窗口的前面。Windows Desktop有一个Z轴的次序,确定一个窗口相对于其他窗口的逻辑位置(上或下)。这个Z轴次序允许窗口以叠加的形式出现,同时确定当前的带有焦点的窗口。BringToFront使用户的应用程序的主窗体的窗口放置在Z轴次序的上部,这样将使它拥有焦点并且处于被激活的状态,使其出现在Desktop的所有窗口之上。
例子:
//Rathcr annoying example that forces your window to the front
procedure TForml.Timer1Timer(Sender: TObject)
begin
if Application.Active = False then
Application.BringToFront
end
CreateFom方法
对应对象:TApp1ication
声明:procedure CreateForm(InstanceClass: TComponentClass
var Reference);
功能:CreateForm方法用来创建一个新的窗体。InstanceClass是要被创建的窗体的类型。Reference是赋予窗体的变量。Application对象拥有新创建的窗体。在项目源代码中至少应调用一次CreateForm,且该应用程序的每一个窗体都将被调用,这些调用是由Delphi自动地调用,不需要用户人工调用。
例子:
//Project source – use View|Project Source from the IDE
program Projectl
uses
Forms,
Unit1 in ‘Unitl.pas’ {Form1}
{$R *.RES}
begin
Application.Initialize
Application.CreateForm(TForm1, Forml)
Application.Run
end
ExeName属性
对应对象:TApplication
声明;property ExeName: string;
功能:ExeName包含了应用程序可执行文件的目录和文件名。
ExeName属性在运行时有效,并且为只读型的。它包含有应用程序的可执行文件名。
Handle属性
对应对象:TApplication
声明:propeny Handle: HWND;
功能:包含有应用程序窗口的句柄。
Handle属性在处理一个需要窗口句柄的API的调用时使用的。通常用户不需要自己去访问Application.Handle属性。注意这里指的是不可视的应用程序窗口的句柄并不是主体窗口的句柄。要获得主体窗口的句柄应使用TForm对象的Handle属性。
HeIpCommand方法
对应对象:TApplication
声明:fuction HelpCommand(Command:Integer;Data:Longint):Boolean
功能:HelpCommand允许用户访问Windows Help API中的任何命令。
Command是需要被调用的Windows Help API命令。Data是需要被传送给Help命令的数据。HelpCommand方法调用了Windows Help的文件WINHELP.EXE,并且将它传送给由Command参数指定的命令及由Data参数指定的数据,被发送的命令指定了请求帮助的类型,而被发送的数据则依请求的命令而确定。以下例出了可以被传送给HelpCommand的部分命令和数据值。
命 令 值
数 据 值
意 义
HELP_COMMAND
包含将要执行的Help宏命令或一毓由分号分隔的Help宏命令的字符串地址
执行Help宏命令或宏命令集。
HELP_CONTENTS
0
此项是为与4.0版本之前的帮助引擎相兼容而提供的命令。对应32位应用程序应使用HELP_FINDER命令。
HELP_CONTEXT
主题的上下文标识符
显示由Data值标识的标题。
HELP_CONTEXTPOPUP
主题的上下文标识符
创建一个显示了Data值指定的主题的弹出式窗口。
HELP_FINDER
0
显示一个4.0版本Helptopics对话框。
HELP_FORCEFILE
0
用于保证WinHelp显示正确的Help文件,如果不是正确的显示,则装载正确的Help文件。
HELP_INDEX
0
该命令与4.0以前的版本相兼容。新的应用程序应该使用HELP_FINDER来代替。
HELP_KEY
关键字字符串的地址
显示由关键字标识的标题,关键字的地址由Data传递。
HELP_PARTIALKEY
关键字字符串的地址
如果完全匹配,则显示由关键字标识的主题,关键字的地址由Data传递,如果有一个以上的匹配,则显示Index标签。
HELP_QUIT
0
如果没有其他的应用程序请求Help,则将关闭Help应用程序。
HELP_SETCONTENTS
对Contents主题的上下文的标识符
当用户按击Contents按钮时,指定要显示的主题。
HELP_SETINDEX
对索引主题上下文的标识符
指定要在Index中显示的关键字列表。
HELP_HELPONHELP
0
使用Windows Help显示Help。
例子:
//Load Windows Help
procedure TForm1.mnuWindowsHelpClick(Sender:TObject)
begin
Application.HelpFile:=’winhelp.hlp’
Application.HelpCommand(HELP_FINDER,0)
End
HelpContext方法
对应对象:TApplication
声明:function HelpContext(Context:IhelpContext):Boolean
功能:HelpContext方法用来打开Windows Help并且显示指定的屏幕。
在调用HelpContext之前,用户必须保证Application的HelpFile属性被设置成为有效的Help文件。HelpContext将用来打开由HelpFile属性指定Help文件并且装载由context参数指定的屏幕。HelpContext的类型为ThelpContext,它是一个简单的整数,是在Help内定义的ID值,并可以通过这个控件的HelpContext的属性和界面元素相关联。为了创建Help文件可以参考Mircosoft Help WorkShop用户手册。
例子:
procedure TForm1.mnuHelpClick(Sender:TObject)
begin
Application.HelpFile:=’my_apps_help.hlp’
Application.HelpContext(11)
End
HelpFile属性
对应对象:TApplication
声明:property HelpFile:String
功能:HelpFile属性指定应用程序所使用的Help文件名。
HelpFile属性在运行时是有效的,缺少时此值为空字符串。如果使用之前没有将HelpFile设置成为一个有效的文件名,则在调用了Help方法之后,应用程序将对此操作忽略。
例子:
procedure TForm1.mnuWindowsHelpClick(Sender:TObject)
begin
Application.HelpFile:=’winhelp.hlp’
Application.HelpCommand(HELP_FINDER,0)
end
HelpJump方法
对应对象:TApplication
声明:function HelpJump(const JumpID:string):Boolean
功能:HelpJump方法用于打开一个Windows Help的指定的页。
HelpJump方法驱动Windows Help应用程序的WINHELP.EXE文件,并且打开了包含有JumpID参数所指定的上下文字符串的页。如果Application的HelpFile属性包含有一个有效的Help文件名的引用,则HelpJump将返回真,否则返回假。为了创建一个上下文字符串可以参考Mircosoft Help WorkShop用户手册。
例子:
procedure TForm1.mnuGotoHelpClick(Sender:TObject)
begin
Application.HelpFile:=’my_apps_help.hlp’
Application.HelpJump(hlpMyIdentifier)
end
HintColor属性
对应对象:TApplication
声明:property HintColor:TColor
功能:HintColor属性用来确定在应用程序中出现的工具的提示窗口的颜色值。
HintColor属性确定了应用程序所使用的工具提示窗口的背景颜色,这个颜色可以被设置成为任何的系统支持的颜色。一些通用的颜色是clBlack,clWhite,clYellow,clCaption及clWindow。HintColor是运行时有效的属性。可以通过各种组件的Hint属性来访问提示。
例子:
procedure TForm1.FormCreate(Sender:TObject)
begin
Application.HintColor:=clAqua
Form1.Hint:=’The HintColor demo program’
Form1.ShowHint:=True
end
HintHidePause属性
对应对象:TApplication
声明:property HintHidePause:Integer
功能:当用户使用鼠标指针在显示的工具提示上没有立即移开时,HintHidePause属性用来确定工具提示的时间长短。
在缺少的情况时,工具的提示及在它消失之前显示约2500毫秒。用户可以用这个属性修改显示的时间长度,时间单位是毫秒。这个属性是在运行时有效的。可以使用每个组件的Hint属性来访问工具提示。
例子:
procedure TForm1.FormCreate(Sender:TObject(
begin
//Set the HintHidePause to 5 seconds
Application.HintHidePause:=5000
end
HintPause属性
对应对象:TApplication
声明:property HintPause:Integer
功能:HintPause属性用来指定在一个工具提示显示之前的所显示的时间长短。
当鼠标在一个将被显示的工具提示之上停留一段时间后,工具提示才显示帮助。这个停留的时间可以由HintPause属性来确定,单位是以毫秒来计算。缺少蝗时间是800毫秒。一般可以使用每个组件的Hint属性来访问组件。
例子:
procedure TForm1.FormCreate(Sender:TObject)
begin
//Set the HintHidePause to 5 seconds
Application.HintHidePause:=5000
//Set the HintPause to 1 second
Application.HintPause:=1000
end
HintShortPause属性
对应对象:TApplication
声明:property HintShortPause:Integer
功能:HintShortPause属性用来确定在绘制之前工具提示的延迟时间的长短。
HintShortPause用于当用户移动鼠标经过了一系列的与工具提示相关联的组件时,禁止工具提示的快速绘制。它确定了工具提示在重新显示之前的等待的时间长短,如果工具提示在近期已经显示过并且鼠标指针再次移动到这个组件上时,HintShortPause将显示在工具再次显示之前的延迟的时间。这个属性在运行时是有效有,时间的单位是毫秒,在缺少时的值是50毫秒。工具提示可以通过组件的Hint属性访问。
例子:
procedure TForm1.FormCreate(Sender:TObject)
begin
//Set the HintPause to 1 second
Application.HintPause:=1000
//Set the HintShortPause to 1/10th of a second
Application.HintShortPause:=100
end
Icon属性
对应对象:TApplication
声明:property Icon:TIcon
功能:Icon属性确定一个代表应用程序的图标。
每一个应用程序的图标Icon属性出现在应用程序任务栏窗口的按钮上,人微言轻应用程序主窗体标题栏的图标,并用来作为在文件浏览器中应用程序的图标。虽然图标的Icon属性可以使用代码来设置,但一般从Delphi中的Project Options对话框中的Application的标签中设置。如果没有改变在选项中的图标,那么当用户在Shell中查看时,可以为自己的应用程序获得缺少的“火炬”图标。
例子:
procedure TForm1.FormCreate(Sender:TObject)
begin
//Set the application icon
Application.Icon.LoadFromFile(‘d:/Borland/Delphi 4/Images/Icons/Earth.ico’)
end
Initialize方法
对应对象:TApplication
声明:procedure Initialize
功能:Initialize方法一般是应用程序调用的第一个方法。
当用户建立了一个新的Delphi应用程序项目时,Initialize将自动地被添加到用户的项目资源上,如果用户的应用程序不是一个OLE自动化服务器,则用户可以删除初始化的这一行代码。对于OLE的自动化服务器,Initialize将使用系统寄存器来存储OLE自动化服务器的类。一个OLE自动化服务器是一个应用程序或一个DLL,它将OLE对象输送给OLE自动化客户。
例子:
program Project1
uses
Forms,
Unit1 in ‘Unit1.pas’{Form1}
{$R *.RES}
begin
Application.Initialize
Applocation.Title:=’Delphi TApplication Demo Program’
Application.CreateForm(TForm1,Form1)
Application.Run
end
MainForm属性
对应对象:TApplication
声明:property MainForm:TForm
功能:MainForm属性用来指示哪一个窗体是应用程序的主窗体。
MainForm属性在运行时有效的,它是只读型的。主窗体是当应用程序被执行时被最先建立的窗体,当主窗体被关闭时应用程序也被关闭。主窗体可以通过项目选项对话框的窗体页来设置。
例子:
program Project1
uses
Forms,
Unit1 in ‘Unit1.pas’{Form1}
Unit2 in ‘Unit2.pas’{Form2}
{$R *.RES}
begin
Application.Initialize
Application.Title:=’MainForm Demo Program’
Application.CreateForm(TForm1,Form1)
Application.CreateForm(TForm2,Form2)
Application.Run
end
MessageBox方法
对应对象:TApplication
声明:function MessageBox(Text,Caption
Char;Flags:Word):Integer
功能:MessageBox方法可以显示一个对话框,在对话框中包含了一条信息和一个及多个按钮。
MessageBox方法是TApplication中的一个经常使用的方法,它包含了Windows API MessageBox函数。使用过Windows的朋友都看到过MessageBox,可以使用VB或Delphi来创建它们。以下是Flags允许的一些值的组合。
标 记 值
意 义
MB_ABORTRETRYIGNORE
出现3个按钮:Abort,Retry,Ignore。
MB_APPLMODAL
对于应用程序的信息框是模式的,即当返回到应用程序之前用户必须单击一个键,MB_APPLMODAL由缺少值设置,对应的行为可以使用MB_SYSTEMMODAL或MB_TASKMODAL来改变。
MB_DEFAULT_DESKTOP_ONLY
信息框必须出现在缺少的桌面上,这个桌面是用户注册的桌面。
MB_DEFBUTTON1
信息框的第一个按钮是缺省的按钮。
MB_DEFBUTTON2
信息框的第二个按钮是缺省的按钮。
MB_DEFBUTTON3
信息框的第三个按钮是缺省的按钮。
MB_DEFBUTTON4
信息框的第四个按钮是缺省的按钮。
MB_HELP
在信息框上添加一个Help按钮,当按F1或此按钮时可以引起Help事件。
MB_ICONASTERISK
与MB_ICONFORMATION的相同。
MB_ICONERROR
与MB_ICONHAND相同。
MB_ICONEXCLAMATION
出现一个感叹号的图标。
MB_ICONHAND
与MB_ICONSTOP相同。
MB_ICONINFORMATION
出现一个小写的i图标。
MB_ICONQUESTION
出现一个问号?的图标。
MB_ICONSTOP
出现一个红色的叉子×的图标。
MB_ICONWARNING
与MB_ICONEXCLAMATION的相同。
MB_OK
信息框出现一个按钮,按钮标题是OK。
MB_OKCANCEL
信息框出现两个按钮,按钮标题是OK和Cancel。
MB_RETRYCANCEL
信息框出现两个按钮,按钮标题是Retry和Cancel。
MB_RIGHT
信息框内的信息是向右对齐的。
MB_TRLREADING
信息框内的文字对于Hebrew和Arabic系统来说是向右对齐的。
MB_SERVICE_NOTIFICATION
允许信息框在一个没有被注册的桌面上显示。
MB_SETFORMEGROUND
使信息框成为当前的窗口。
MB_SYSTEMMODAL
此信息框不允许用户在它被关闭之前进行任何的其他操作,这个标记可以为十分重要的信息进行保留。
MB_TASKMODAL
与MB_APPLMODAL相同。
MB_YESNO
信息框有两个按钮,按钮标题是Yes和No。
MB_YESNOCANCEL
信息框内有三个按钮,按钮标题是Yes,No和Canel。
对于此属性的返回值类型可见下表:
命名的返回值
返回数值
意 义
IDABORT
0
没有足够的内存空间来显示信息框。
3
用户选择了Abort按钮功能。
IDCANCEL
2
用户选择了Cancel按钮功能。
IDIGNORE
5
用户选择了Ignore按钮功能。
IDNO
7
用户选择了No按钮功能。
IDOK
1
用户选择了OK按钮功能。
IDRETRY
4
用户选择了Retry按钮功能。
IDYES
6
用户选择了Yes按钮功能。
例子:
//Close the application
procedure TForm1.mnuFileQuitClick(Sender:TObject)
begin
if Application.MessageBox(‘Do you really want to quit?’,’Quit?’,
MB_YESNO+MB_ICONHAND)=IDYES then
Close
end
Minimize方法
对应对象:TApplication
声明:procedure Minimize
功能:Minimize方法使一个应用程序最小化成为一个任务栏按钮。
Minimize方法使应用程序的每一个窗口和当前窗口都变为最小化形式。
例子:
procedure TForm1.mnuMinimizeClick(Sender:TObject)
begin
Application.Minimize
end
OnActivate事件
对应对象:TApplication
声明:property OnActivate:TNotifyEvent
功能:OnActivate事件是在应用程序被激活时产生。
当应用程序接受一个焦点时OnActivate事件将产生。由于它对应TApplication对象不能从对象探测器直接获得,所以要人工对应地创建一个OnActivate事件的处理代码。
例子:
unit Unit1
interface
uses
Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs
type
TForm1=class(TForm)
procedure FormCreate(Sender:TObject)
//add these function declarations manually
procedure AppActivate(Sender:TObject)
procedure AppDeactivate(Sender:TObject)
private
{Private declarations}
public
{Piblic declarations}
end
var
Form1:TForm1
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender:TObject)
begin
//determine which methods will handle OnActivate and OnDeactivate
Application.OnActivate:=AppActivate
Application.OnDeactivate:=AppDeactivate
end
//Add this event handler manually
procedure TForm1.AppActivate(Sender:TObject)
begin
//Perform task here thate you want to happen every time the application is activated.
end
//Add this event handler manually
procedure Tform1.AppDeactivate(Sender:TObject)
begin
//Perform task here that you want to happen every time the application is deactivated.
end
end
OnDeactivate事件
对应对象:TApplication
声明:property OnDeactivate:TNotifyEvent
功能:OnDeactivate事件在应用程序推动焦点时将发生。
OnDeactivate事件允许用户在应用程序无效之前结束任务。由于对应的TApplication对象不能在对象探测器中被获得,所以,用户需要人工地创建OnDeactivate事件的处理代码。
例子:
unit Unit1
interface
uses
Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs
type
TForm1=class(TForm)
procedure FormCreate(Sender:TObject)
//add these function declarations manually
procedure AppActivate(Sender:TObject)
procedure AppDeactivate(Sender:TObject)
private
{Private declarations}
public
{Piblic declarations}
end
var
Form1:TForm1
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender:TObject)
begin
//determine which methods will handle OnActivate and OnDeactivate
Application.OnActivate:=AppActivate
Application.OnDeactivate:=AppDeactivate
end
//Add this event handler manually
procedure TForm1.AppActivate(Sender:TObject)
begin
//Perform task here thate you want to happen every time the application is activated.
end
//Add this event handler manually
procedure Tform1.AppDeactivate(Sender:TObject)
begin
//Perform task here that you want to happen every time the application is deactivated.
end
end
OnException事件
对应对象:TApplication
声明:property OnException:TExceptionEvent
功能:OnException事件在应用程序出现了一个无法处理的异常时发生。
OnException事件类似于异常的全局else,如果用户不明显地处理一个异常,可以通过HandleException来发出OnException事件。缺省时HandleException将调用ShowException,并将出现异常的信息框。如果用户想改变对应的操作,可以对OnException事件添加处理代码。TExceptionEvent的类型是OnException,它可以被声明成为:TExceptionEvent=procedure (Sender:TObject;E:Exception) of Object
Sender参数声明了产生异常的对象,E参数是异常的信息。
例子:
unit Unit1
interface
uses
Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;
type
TForml=class(TForm)
Buttonl:Button;
label1:Tlabel;
procedure FormCreate(Sender:TObject);
procdurc AppException(Sender:Tobect;E: Exception);
procedure ButtonlClick(Sender:TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Fom1: TForml;
X: Integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnException:= AppException;
X:=100;
Iabell.Caption:=IntToStr(X);
end;
procedure TForml.AppException(Sender: Tobject;E: Exception);
begin
if Sender=Button1 then
X:=0;
end;
procedure Tform1.Button1C1ick(Sender:TObject);
var Y:Integer;
begin
Y:=0;
try
X:=X div Y;
except
on ErangeError do
X:=0;
end;
end.
OnHelp事件
对应对象:TApplication
声明: property OnHelp:THelpEvent;
功能:OnHelp事件用于当用户程序出现并接到一个帮助请求时发出帮助。
HelpContext和HelpJump方法用于产生OnHelp。如果用户想在每一个帮助执行
时执行一些任务,可以创建OnHelp事件的事件处理代码。
OnHint事件
对应对象:TApplication
声明:property OnHint:TNotifyEvent;
功能:当一个指针处于一个组件上,此组件的Hint属性包含有一个有效字符串时,OnHint
事件将发生。
为了使OhHint事件发生,组件的Hint属性必须包含一个非空的字符串。用户可
以使用OnHint事件来执行当该事件发生时用户希望发生的任务。一般情况时,
应用程序利用事件窗体状态栏上的Hint字符或帮助信息。
例子:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,Dialogs,
Buttons,ExtCtrls,ComCtrls;
type
TForm1 = class(TForm)
StatusBar1: TStatusBar;
Panel1: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
//manually added handler for the OnHint event
procedure HandleHints(Sender:TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//Set the OnHint event to be handled by HandleHints
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnHint:= HandleHints;
end;
//When an OnHint event occurs,display the hint in the status bar
procedure Tform1.HandleHints(Sender:TObject);
begin
StatusBar1.SimpleText:=Application.Hint;
end;
end.
OnIdIe事件
对应对象:TApplication
声明: property OnIdle: TIdleEvent;
功能:在应用程序空闲时将发生OnIdle事件c
如果用户想在应用程序空闲时处理一些操作,可以将一个事件处理代码添加到
OnIdle事件上去。TIdleEvent的类型被声明成为OnIdLe,定义是:
TidleEvent=procedure(Senger:Tobject
var Done: Boolean) of object;
其中Done参数缺省时为真,声明应用程序等待系统的信息。当Done参数为假
时,应用程序将不处理系统信息。使用OnIdle事件要特别注意,许多应用程序
不需要处理这个事件。
例子:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,Dialogs,
ComCtrls,StdCtrls;
type
TForm1 = class(TForm)
StatusBar1: TStatusBar;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
procedure Waiting(Sender:TObject
var Done: Boolean);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//Setup an OnIdle event handler
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnIdle:= Waiting;
end;
//the handler for OnIdle events
procedure Tform1.Waiting(Sender:TObject
var Done: Boolean);
begin
StatusBar1.SimplePanel:=True;
StatusBar1.SimpleText:= ‘OK!Let‘s get going’;
Done:=True;
end;
OnMessage事件
对应对象:TApplication
声明:TMessageEvent=procedure(var Msg: TMsg
var Handled: Boolean) of object;
property OnMessage: TmessageEvent;
功能:OnMessage事件在应用程序收到一个系统信息时被激发。
如果用户想使应用程序对一个特定的信息作出一个特定的响应,则可以对
OnMessage事件来创建一个对应的处理代码来完成。应用程序中的许多信息是被自
动地处理并由Delphi来为用户传递,采用这个方法可以使用户使用API的方法
处理信息。
例子:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,ComCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
procedure MessageHandler(var Msg:TMsg
var Handled:Boolean);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//Determine the handler for OnMessage
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage:=MessageHandler;
end;
//The OnMessage event handler
procedure Tform1.MessageHandler(var Msg:TMsg;var Handled:Boolean);
begin
ListBox1.Items.Add(‘message recevied’);
If ListBox1.Items.Count>15 then
ListBox1.Clear;
End;
end.
OnMinmize事件
对应对象:TApplication
声明: TNotifyEvent=procedure(Sender:Tobject) of object;
property OnMinimize:TnotifyEvent;
功能:当应用程序被最小化时将发生对应的OnMinimize事件。
和一般的TApplication事件一样,当应用程序被最小化时,用户可以创建对应的
特定的某些操作任务,并可以通过为OnMinimize事件添加一个特定的处理代码
来实现。OnMinimize事件被激发,是由于Minimize方法被调用或应用程序的主
窗口的最小化按钮被点击所造成的。
例子:
unit Unit1;
interface
uses
Windows, Messages, SysUtils , Classes, Graphics, Controls, Forms,Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
//manully added method declarations
procedure MinimizeHandler(Sender:TObject);
procedure RestoreApp(Sender:TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//Set custom handlers for the OnMinimize and OnRestore events
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.Title:=’My application’;
Application.OnMinimize:=MinimizeHandler;
Application OnRestore:=RestoreApp;
end;
//Change the app title back when the app is Minimized
procedure Tform1.MinimizeHandler(Sender:TObject);
begin
Application.Title:=’Minimized!’;
End;
//Change the app title back when it is restore
procedure Tform1.RestoreApp(Sender:TObject);
begin
Application.Title:=’My application’
end;
end.
OnRestore事件
对应对象:TApplication
声明: TNotifyEvent=procedure(Sender:TObject) of object;
property OnRestore:TNotifyEvent;
功能:当一个最小化的应用程序被还原时,OnRestore事件发生。
和一般的TApplication事件一样,当应用程序被还原时用户可以创建对应的任务
操作,并可以处理对应的OnRestore事件的代码来完成特定的任务。
例子:
unit Unit1;
interface
uses
Windows, Messages, SysUtils , Classes, Graphics, Controls, Forms,Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
//manully added method declarations
procedure MinimizeHandler(Sender:TObject);
procedure RestoreApp(Sender:TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//Set custom handlers for the OnMinimize and OnRestore events
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.Title:=’My application’;
Application.OnMinimize:=MinimizeHandler;
Application.OnRestore:=RestoreApp;
end;
//Change the app title back when the app is Minimized
procedure Tform1.MinimizeHandler(Sender:TObject);
begin
Application.Title:=’Minimized!’;
End;
//Change the app title back when it is restore
procedure Tform1.RestoreApp(Sender:TObject);
begin
Application.Title:=’My application’
end;
end.
OnShowHint事件
对应对象:TApplication
声明:THintInfo=record
HintControl:Tcontrol;
HintPos: TPoint;
HintMaxWidth: Integer;
HintColor: TColor;
CursorRect: TRect;
CursorPos: TPoint;
ReshowTimeout: Integer;
HideTimeout: Integer;
HintStr: string;
end;
TShowHintEvent = procedure (var HintStr: string
var CanShow: Boolean
var
HintInfo: THintInfo) of object;
property OnShowHint: TShowHintEvent;
功能:当应用程序要显示一个工具提示时OnShowHint事件将发生。
OnShowHint事件在工具提示被显示之前发生,因此这个事件允许用户在工具提
示显示之前改变它对应的操作。TShowHintEvent是一个指针类型,它指向显示
控件工具所提示的方法。工具提示的文字是由HintStr参数来提供的。如果CanShow
参数是真,则工具提示可以显示。如果这个参数为假,则提示不能被显示。
HintInfo参数的类型是THintInfo的,提示一个Pascal的记录。THintInfo记录中
的内容确定了工具提示的属性。
例子:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,Buttons,ExtCtrls,ComCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
StatusBar1: TStatusBar;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
Procedure HandleHints(Sender:TObject);
Procedure DoBeforeHint(var HintStr:String;var CanShow:Boolean;
var HintInfo:THintInfo);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnHint:=HandleHints;
Application.OnShowHint:=DoBeforeHint;
Application.Hint:='Hello,World!';
end;
Procedure TForm1.HandleHints(Sender:TObject);
begin
StatusBar1.SimpleText:=Application.Hint;
end;
Procedure DoBeforeHint(var HintStr:String;var CanShow:Boolean;var HintInfo:THintInfo);
begin
//If the hint is for the Abort button,display it in red
if HintInfo.HintControl=SpeedButton5 then
HintInfo.HintColor:=clRed;
end;
end.
Restore方法
对应对象:TApplication
声明: procedure Restore;
功能:Restore方法还原一个被最小化的应用程序。
Restore方法被用于把主窗口还原成为它被最小化之前的大
例子:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
//Manually added function declaration
procedure MinApp(Sender:TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//Handle the OnMinimize event
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMinimize:=MinApp;
end;
//If the Edit boxis not fil1ed in,restore the application Window when
//the user tries to minimize it
procedure TForm1.MinApp(Sender:TOBject);
begin
if Edit1.Text='' then
begin
Application.Restore;
Application.MessageBox('You must fill in the edit field first!',
'Restore Demo',MB_OK);
end;
end
end.
Run方法
对应对象:TApplication
声明: procedure Run;
功能:Run方法用来执行应用程序。
Run方法自动被每个Delphi应用程序所调用,一般在项目代码中它位于最后
一行。
例子:
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$ R*.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1,Form1);
Application.Run;
end;
Title 属性
对应对象:TApplication
声明:Property Title:string;
功能:Title属性用来确定任务栏按钮中所标识应用程序的文字。
Title属性可以具有一个与主窗体不同的标题,由此窗体经常具有和他的任务栏
不同的标题。应用程序的标题可以使用Title属性来设置或者通过项目选项的应
用页的IDE来确定,应用程序的缺省名可作为项目的名。如果用户没有重新命名,
则应用程序将以PROJECT1被调用。
例子:
procedure TForm1.FormCreate(Sender:TObject);
begin
Application.title:='Chris-Travel Expense Report';
Form1.Caption:= Application.Title;
end