一、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属性是在运行时有效,它是只读类型的。当应用程序处于激活状态并且具有焦点时,它将返回真,否则将返回假。
BringToFront方法
对应对象:TApplication
声明:procedure BringToFront;
功能:BringToFront方法用于将用户的应用程序的主窗体窗口放置到Windows Desktop上的其他窗口的前面。Windows Desktop有一个Z轴的次序,确定一个窗口相对于其他窗口的逻辑位置(上或下)。这个Z轴次序允许窗口以叠加的形式出现,同时确定当前的带有焦点的窗口。BringToFront使用户的应用程序的主窗体的窗口放置在Z轴次序的上部,这样将使它拥有焦点并且处于被激活的状态,使其出现在Desktop的所有窗口之上。
CreateFom方法
对应对象:TApp1ication
声明:procedure CreateForm(InstanceClass: TComponentClass; var Reference);
功能:CreateForm方法用来创建一个新的窗体。InstanceClass是要被创建的窗体的类型。Reference是赋予窗体的变量。Application对象拥有新创建的窗体。在项目源代码中至少应调用一次CreateForm,且该应用程序的每一个窗体都将被调用,这些调用是由Delphi自动地调用,不需要用户人工调用。
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。
HelpFile属性
对应对象:TApplication
声明:property HelpFile:String;
功能:HelpFile属性指定应用程序所使用的Help文件名。 HelpFile属性在运行时是有效的,缺少时此值为空字符串。如果使用之前没有将HelpFile设置成为一个有效的文件名,则在调用了Help方法之后,应用程序将对此操作忽略。
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:PChar;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 / 没有足够的内存空间来显示信息框。
IDABORT / 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事件,如果用户想在应用程序空闲时处理一些操作,可以将一个事件处理代码添加到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方法被用于把主窗口还原成为它被最小化之前的大
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;
2003-11-14 14:39:00
发表评语»»»
2003-11-14 14:44:51 VCL组件的属性和方法详解 -- 二、TCommonDialog二、TCommonDialog
继承关系:
TCommonDialog--TColorDialog
Color属性
对应对象:TColorDialog
声明:property Color:TColor default clBlack;
功能:Color属性用来确定在颜色对话框中选择哪一个颜色。当用户选择了一个新的颜色时,Color属性将被设置为新颜色的值。
例子:
//Change the color of the selected text when the user choose a
//color from the Color dialog box
procedure TForm1.sbColorClick(Sender: TObject);
begin
Colordialog1.Execute;
RichEdit1.SelAttributes.Color:=Colordialog1.Color;
End;
CustomColors属性
对应对象:TColorDialog
声明:property CustomColors:TStrings;
功能:CustomColors属性确定在颜色对话框中可以获得的一种自定义的颜色。CustomColors属性保存了一个字符串的列表,每一个字符串的格式是:ColorX=HexValue,其中ColorX是16个自定义的颜色中的一个,是从ColorA到ColorP,HexValue参数是一个十六进制的数值,它说明了构成颜色的所对应的RGB值。所以,对应于纯白色这个值是FFFFFF,000000是纯黑,使用Color0=000000 说明了把纯黑色传递给颜色选择。当颜色对话框被关闭时,保存了对话框颜色的列表,以便用户可以在下一次使用对话框时使用自定义颜色。
例子:
procedure TForm1.sbColorClick(Sender: TObject);
var X:Integer;
begin
Colordialog1.CustomColers:= StrCustomColors;
Colordialog1.Execute;
RichEdit1.SelAttributes.Color:=Colordialog1.Color;
StrCustomColors:=Colordialog1.CustomColors;
//Save StrCustomColors to the registry or an INI file
//when the program exits…
end;
Options属性
对应对象:TColorDialog
声明: TColorDialogOption = (cdFullOpen, cdPreventFullOpen, cdShowHelp, cdSolidColor,cdAnyColor);
TColorDialogOptions = set of TColorDialogOption;
property Options: TcolorDialogOptions default[];
功能:Options属性说明了颜色对话框的显示形式和选项。
以下列举了有效的选项值。
选 项 值 / 意 义
cdFullOpen / 当颜色对话框被打开时显示了定制颜色的选项。
cdPreventFullOpen / 使在对话框中的定义定制的颜色成为不可用,所以便用者不能定义新的颜色。
cdShowHelp / 在对话框之中添加一个帮助按钮。
cdSolidColor / 指引系统使用最近的纯颜色的选择。
cdAnyColor / 允许使用者选择非纯的颜色(可以被近似的抖动)
缺省时所有的选项是被关闭的。
例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
ColorDialog1.Options:=[ cdFullOpen, cdShowHelp];
end;
OnClose事件
对应对象:TColorDialog
声明:property OnClose:TNotifyEvent;
功能:当一个对话框被关闭时,OnClose事件被引发。当对话框关闭时写入一个OnClose事件的句柄来完成指定的操作。
2003-11-14 15:14:14 VCL组件的属性和方法详解 -- 三、TComponent 三、TComponent
ComponentCount属性
对应对象:所有组件
声明:property ComponentCount: Integer;
功能:此属性在运行时有效,它是只读型。同时它标明组件具有的组件数。当用户在设计时可以在窗体上放置一个组件,因此此窗体将变为这个组件的有用者。Components属性例出了当前组件的所有的组件。
例子:
procedure TForml.ButtonlClick(Sender: TObject);
var
x: Integer;
begin
x := Forml.ComponentCount;
Labell.Caption := IntToStr(x);
end;
ComponentIndex属性
对应对象:所有组件
声明:properrty ComponentIndex: Integer;
功能:此属性说明了拥有者的组件例表中当前的组件的位置。
每个组件包含一个其拥有者的组件数组,此数组是以0为基底的数组。Components属性可以来访问这个数组。CompnentIndex属性列出了它被拥有者的Components数组内部组件的位置,该属性在运行时是有效的,且是只读型。
例子:
procedure TForm1.ButtonlClick(Sender: TObject);
begin
Labell.Caption := IntToStr(RadioButton3.ComponentIndex);
end;
Components属性
对应对象:所有组件
声明:property Components[Index: Integer]: TComponent;
功能:Components属性指出当前数组所拥有的组件数组。
Components属性在运行时是有效的,它是只读型的。它可以用来访问组件所拥有的任何组件(在知道组件的索引时)。一般情况下直接地访问组件边界容易,但是如果用户在运行时动态地创建了许多组件,用户将需要使用这个方法。因为组件数组是以0为基底的,所以第一个组件的索引将是0,第二个组件的索引将是1等。
例子:
//Indirectly access the check boxes owned by the form and check them all
procedure TForml.Button3Click(Sender: TObject);
var
x: Integer;
begin
for x := 0 to Forml.ComponentCount – 1 do
if Forml.Components[x] is TCheckBox then
TCheckBox(Form1.Components[x]).Checked := True;
end;
ComponentState属性
对应对象:所有组件
声明:property ComponentState: TComponentState;
功能:ComponentState属性用来描述组件的状态。
ComponentState属性在运行时是有效的,且它是只读型的。它的类型是TComponentState,被声明成为:TComponentState = set of (csLoading, csReading, csWriting, csDestroying, csDesigning, csAncestor, csUpdating, csFixups); TComponentState是一个标志集合,把它们组合在一起可以导出组件的状态,一些公用的标志包括以下:
csDesigning:Delphi环境是设计方式,因此可以编辑组件。
csReading:组件从一个流中读取它的属性值。
csWriting:组件将它的属性值写入一个流中。
组件在内部使用CompnentState属性,可以保证某些程序可以执行。因此,无需经常直接地访问ComponentState。
DestroyCompoents方法
对应对象:所有组件
声明:procedure DestroyComponents;
功能:DestroyComponents方法撤销当前组件所拥有的全部组件。
DestroyComponents是它在第—次调用Destroying之后由Destroy方法调用的。除非是设计一个组件,一般的情况下是不需要直接访问DestroyComponents的。
Destroying方法
对应对象:所有组件
声明:procedure Destroying;
功能:Destroying通过在它的ComponentState属性中设置cbDestroying标志,来通知当前组件立刻被撤销(除了在同时由全局TGovemor对象产生一个msgPardon信息)。之后它将对当前组件拥有的每一个组件调用Destroying方法。调用Destroying是由组件的Destroy方法所作出的第一个操作,用户一般不需要直接访问Destroying。