TApplication类
2008-03-08 21:51:32 来源:WEB开发网核心提示:Tapplication是应用程序使用的类型, 类关系 TObject→TPersistent→TComponent TApplication 是一外封装Windows 应用程序的类,TApplication类,在Y职TApplication中引入的方法和属性,反映了 Windows 操作系统建立起来的如创建、运行、确
Tapplication是应用程序使用的类型。
类关系 TObject→TPersistent→TComponent
TApplication 是一外封装Windows 应用程序的类。在Y职TApplication中引入的方法和属性,反映了 Windows 操作系统建立起来的如创建、运行、确认以及删除一个应用程序的基本情况。因此,当编写一个 Windows 应用程序时,TApplication简化了用户和 Windows 环境之间的接口。为此目的, TApplication封装了下列行为:
·Windows信息处理
·上下文相关的在线帮助
·菜单加速键和键处理
·异常情况处理
·为应用程序治理在Windows 操作系统中进行定义的基本部分,例如MainWindow、WindowClass 等。
每个C++Builder应用程序象声明应用程序实例一样,自动声明Application变量。假如C++Builder应用程序不是Web服务器应用程序,该变量将属于TApplication类型。因此,Tapplication 对象既不可能在元件选项板组件中出现,窗体设计者也不可能在进行可视化操作时使用。TApplication 对象没有公开的属性。然而,TApplication对象的一些公用特性可以在窗体设计阶段进行设置或修改;也可以在PRiject Options对话框中的Application页中进行设置或修改。
属性列表
Active 应用程序是否是活动的
AllowTesting 表示IDE的信息
DialogHandle 在应用程序中使用非Delphi对话框提供机制
ExeName 可执行应用程序的文件名称
Handle 提供对窗口句柄的访问
HelpFile 用于显示帮助的文件名称
Hint 显示在帮助提示框中的文本字符串
Hintcolor 确定提示框的颜色
HintHidePause 在隐匿帮助提示之前应等待的时间间隔
HintPause 在控件的帮助提示显示之前应经过的时间间隔
HintShortPause 在再次弹出提示前应等待的停顿时间
Icon 确定在Windows任务栏上代表应用程序的图标
MainForm 识别应用程序中的主窗口
ShowHint 确定帮助提示对整个应用程序是激活的还是失活的
ShowMainForm 确定应用程序启动时是否显示其主窗体
Terminated 报告应用程序是否已经收到WM--QUIT信息
Title 出现在应用程序图标下的文本
updateFormatSettings 是否自动更新格式化设定
UpdateMetricSettings 是否更新对于提示窗口字体和图标标题字体的设定
方法列表
~TApplication 用于删除应用程序实例及其与之相关的内存
BringToFront 将桌面最后一个激活的窗口作为最前端窗口
CancelHint 为控件取消提示的显示
ControlDestroyed 通知应用程序一控件被删除
CreateForm 创建一个新窗体
CreateHandle 为应用程序生成一主窗口
HandleException 为应用程序提供异常的默认处理方法
HandleMesage 中断应用程序以处理Windows消息队列中消息
HelpCommand 提供对API中的任何帮助命令的快速存取
HelpContext 为应用程序显示帮助文件
HelpJump 产生一个OnHelp事件
HideHint 隐藏当前的提示
HintMouseMessage 调整提示窗口的显示
HookMainWindow 使非Delphi对话框能够接收送到应用程序主窗口的信息
Initialize 为初始化的分系统提供了机会
MessageBox 向用户显示一个指定的消息
Minimize 使应用程序缩小到Windows任务栏上
NormalizeAllTopMosts 使最前端的窗体含主窗口的行为象不是最前端窗体一样
NormalizeTopMosts 使最前端的窗体的行为象不是最前端的窗体一样
ProcessMessages 中断应用程序以便Windows能够响应事件
Restore 恢复一个最小化的应用程序至正常大小
RestoreTopMosts 使faStayOnTop指定的窗体重新恢复到最前端
Run 执行应用程序
ShowException 显示发生在应用程序中的异常
TApplication 创建一个新的应用程序
Terminate 结束应用程序的执行
UnhookMainWindow 释放HookMainWindow方法挂钩的对话过程
事件列表
OnActivate 当应用程序变为活动时该事件发生
OnDeactivate 当应用程序变为非活动时该事件发生
OnFxception 在应用程序中出现未处理异常时该事件发生
OnHelp 当应用程序收到寿命的请求时该事件发生
OnHint 当光标移到帮助提示控件或菜单选项上时该事件发生
ONIdle 当应用程序变为空闲时该事件发生
OnMessage 当应用程序收到Windows消息时该事件发生
OnMninize 当应用程序被最小化时该事件发生
OnRestore 当被最小化的应用程序恢复时该事件发生
OnShowHint 当应用程序显示提示窗口时该事件发生
属性
Tpplication::AllowTesting
指定应用程序是否是活动的,是否有焦点。
__property bool Active = { read = FActive, nodefault } ;
Active属性属于只读属性。当应用程序是活动的,Active 属性为True ;应用程序是非活动的,ACtive属性为 False。在构造函数中,Active 属性被设置为True。假如窗体可应用程序具有焦点时,则应用程序是活动的。当来自另一个不同的应用程序的窗口变成活动的窗口时,原应用程序变成非活动的。关闭应用程序时,在析构函数中 Active属性被设置为False。
TApplication::AllowTesting
AllowTesting 属性表示IDE的信息。
__property bool AllowTesting ={ read = TAllowTesting ,write = FAllowTesting , nodefault };
不能使用AllowTesting属性,它仅供内部使用。
TApplication::DialogHandle
DialogHandle属性为在Delphi应用程序中使用非Delphi对话框提供了一个机制。
__property HWND DialogHandle = {read = GetDialogHandle,write = SetDialogHandle,nodefault };
当显示一个用CialogHandle API功能创建的一个非模态对话框时,使用DialogHandle属性。将DialogHandle属性设定为非模态对话框的句柄,能答应对话框理解来处自应用程序信息回路的信息。当对话框收到一个激活信息(WMNCACTIVATE)时,将DialogHandle属性设定为非模态对话框的句柄;当对话框收到下个失去活动的信息时,将DialogHandle属性设置为0。
TApplication::EXeName
包含包括中文路径信息的可执行应用程序的文件名称。
__property System::AnsiString ExeName = {read = GetExeName } ;
ExeName属性属于只读属性。使用ExeNarme属性可以获得应用程序可执行文件的名称。应用程序的名称是扩展名为::EXE的工程文件的根名。默认名为PROJECTI::EXE。若想改变ExeName属性,则用所需要的新根名保存工程文件并重建应用程序。ExeName属性能够反映工程文件名的改变。
TApplication::Handle
Handle属性提供对应用程序主窗体(窗口)的窗口句柄的访问。
__property HWND Handle={read=FHandle,write=SetHande,nodefault};
调用需要一个父窗口句柄的Windows API函数时,使用Handle属性。例如,在应用程序中,一个显示其最高层弹出式窗口的DLL,将需要一个父窗口以显示其窗口。使用Application::Handle可以使这样的窗口成为应用程序的一部分,因而它们可与应用程序一起进行最小化、最大化、激活以及失活。
注重:使用VCL窗体写一个DLL时,指定主EXE的主窗口的窗口句柄作为DLL的Application::Handle属性。这可使DLL的窗体成为主应用程序的一部分。在一个EXE中不要对Application::Handle赋值。
TApplication::HelpFile
指定应用程序用于显示帮助的文件名称。
__property System::AnsiString HelpFile={read=FHelpFile,write=FHelpFile};
对于有一个帮助文件与Windows Help系统一起使用的应用程序,使用HelpFile属性。Windows显示由HelpFile属性指定的文件。或者在运行阶段给HelpFile属性指定一个文件名,或者在设计阶段在Project|Options对话框的Application页中指定一个帮助文件。默认时,HelpFile属性为一零字符串,且应用程序的Help方法忽略显示帮助的尝试。假如HelpFile属性包含任何字符串,HelpContext方法将其传递至Windows Help系统作为使用帮助的文件名。假如已经设置了活动窗体的帮助文件,则将显示该帮助文件而不是显示应用程序的帮助文件。
TApplication::Hint
指定显示在帮助提示框中的文体字符串。
__property System::AnsiString Hint = {read=FHint,wrte=SetHint};
TApplication对象的Hint属性被赋值为控件的Hint属性数值或鼠标当前移在其上的菜单选项。Hint属性还或赋值为一个字符串数值,以告知用户一些行为、错误或其他类型信息。因此,或从两方面使用Hint属性:
使用OnHint事件处理程序,可以从控件至另一诸如状态栏的显示区域上移动提示。这属于读Hint属性。
当应用程序正在处理一些行为时,显示应用程序的状态。这属于设置Hint属性。
当发生OnHint事件时,显示帮助提示。因此,假如TApplication对象的Hint属性被赋值为状态栏的标题,状态栏控件的标题显示OnHint事件中预期的Hint属性的当前字符串数值。Hint属性字符串有两种形式:短提示和长提示。短提示通常由弹出式工具技巧使用。长提示通常由状态根据地使用,相互向以“|”字符隔开。从Controls单元中,使用全局函数GetShortHint和GetLongHint,可以从一个提示字符串中取出短提示和长提示。
注重:在应用程序中,将Hint属性设置为一个告知用户事件发生的信息时。应当牢记:当鼠标移到一个控件上,默认时,Hint属性字符串被重新设定为控件的Hint属性。
TApplication::HintColor
为应用程序的帮助提示,用来确定提示框的颜色。
__property Graphics::TColor HintColor = {read=FHintColor,write=SetHintColor,nodefault};使用HintColor属性,可以指定提示框的颜色。创建应用程序时,在构造函数中将HintColor属性设置为clInfoBk默认颜色数值。若要修改HintColor属性,应在运行阶段将其赋值为一个新的TColor数值。
TApplication::HintHidePause
假如鼠标没有从控件或者菜单选项是移开, HintHidePause属性指定在隐匿帮助指示之前应等待的时间间隔。
__property int HintHidePause = {read =FHintHidePause ,write =FHintHidePause,nodefault };
使用HintHidePause属性,可以指定一个以毫秒表示的等待时间,这不同于在构造函数中设置的2 500毫秒或者2::5秒的默认数值。控件或者菜单选项的帮助提示在Hint属性中指定。默认值是一个预先确定的常量,它要比HintHidePause属性长数倍。
TApplication::HintPause
当用户将鼠标光标置于一个控件或者菜单选项时,HintPause 属性用于指定在控件的帮助提示显示之前应经过的时间间隔。
__property int HintPause = {read =FHintPause,write =FhintPause,nodefault};
使用HintPause属性,可以修改在构造函数中设置500毫秒功0::5秒的默认停顿时间。当对HintPause属性赋值时指定时间间隔以毫秒表示。停顿结束时,显示在Hint属性中指定的帮助提示。
TApplication::HintShorPause
假如提示信息已经显示,HintShortPause属性指定在再次弹出指示前应等待的停顿时间。
___property int HintShortPause ={read =FHintShortpuse ,write =FJintShortPause ,nodefault };
在一套均有帮助指示的按钮上快速移动鼠标时,使用HintShortPause属性可以使减少鼠标的闪烁。用毫秒指定一个数值不同于在构造函数中设置的 50ms的默认数值。
TApplication::Icon
确定在Windows任务栏上哪一个图标代表应用程序。
__property Graphics::TIcon*Icon ={read=FIcon,write =SetIcon};
使用Icon属性,可以设定一个特定的图标来代表应用程序。设置Icon属性可按下述中的一个进行。
·运行阶段,为其设定一个TIcon。
·设计阶段,在Project Options 对话框的Application页中装入一个图标。
当应用程序被最小化时,图标代表应用程序。在Windows桌面或Windows95的任务栏上也可显示图标。
TApplication::MainForm
识别应用程序中的哪一个窗体是主窗口。
__property TForm *MainForm +{read =FMainForm};
使用MainForm属性,可以指定一个不同于默认时的窗体作为应用程序的主窗口。通过CreateForm方法创建第一个窗体时,MainForm属性数值即被设置。当创建一个新工程时,Forml自动成为MainForm属性的数值。若要为MainForm属性设定一个不同的窗体,在设计阶段,使用Project|Options对话框的Forms页进行设置。由于MaainForm属性属于只读属性,因此,在运行阶段MainForm属性不能被修改。
主窗体是在应用程序的主体中创建的第一个窗体。主窗体关闭时,应用程序终止。
TApplication::ShowHint
确定帮助提示对整个应用程序是激活的还是失活的。
__property bool ShowHint = {read=FShowHint,write=SetShowHint,nodefault};
使用ShowHint属性,可以选择何时显示帮助提示。假如ShowHint属性为True,显示帮助提示;假如ShowHint属性为False,帮助提示不显示。ShowHint属性的默认值为True。帮助提示在Hint属性中指定。不论单个控件的ShowHint属性的数值是什么,将应用程序的ShowHint属性设置为False,将使所有的帮助提示不能使用。
TApplication::ShowMainForm
ShowMainForm属性用于确定应用程序启动时是否显示其主窗体。
__property bool ShowMainForm ={read=FShowMainForm,write=FShowMainForm,nodefault};
使用ShowMainForm属性,可以控制应用程序启动时是否显示主窗体。在构造函数中,ShowMainForm属性的默认数值被设置为True。默认时显示主窗体。MaainForm属性指定哪一个窗体是主窗体。欲在应用程序启动时隐藏主窗体,就在调用Application::Run之前,在主工程文件中将ShowMainForm属性设置为False,同时应确认窗体的Visible属性也为False。执行OLE自动控制服务器程序,为隐藏服务器程序启动时的主窗体,ShowMainForm属性是十分有用的。
TApplicatioon::Terminated
报告应用程序是否已经收到Windows的WM_QUTT信息,然后终止应用程序。
__property bool Terminated = {read=FTerminate,nodefault};
Terminated属性属于只读属性。调用ProcessMessages方法时才使用Terminated属性,以便使应用程序在退出后不再处理Windows的信息。当ProcessMessages方法收到一个WM_WUTT信息时,将Terminated属性设置为True。因为应用程序的主窗口已经关闭。或者因为已经调用了Terminate方法,因此,一个Delphi应用程序经常收到一个WM_QUTT信息。对于使用集中循环的应用程序,将定期地调用Application::ProcessMessages方法并检查Appication::Terminated属性,以确定是否退出计算,以便应用程序能终止运行。
TApplication::Title
当应用程序被最小化时,Title 属性包含了出现在应用程序图标下的文本。
__property System::AnsiString Title = { read =GetTitle,write =SetTitle };
使用Title属性,可以修改出现在应用程序图标下的这个文本字符串的名称。在运行阶段。 Title属性的默认值取DLL/EXE文件名。在运行阶段,Title ntg属性,或者在ProjectOptions 对话框的Application页中输入 Title属性的数值。
TApplication::UpdateFormatSettings
当用户修改了系统配套时,UpdateFormatSettings属性用于指定是否自动更新格式化设定。
__property bool UpdateFormatSettings ={ read =FUpdateFormatSettings,wrute =FUpdateFormatSettings , nodefault } ;
使用 UpdateFormatSettings属性以控制格式化设定的自动更新。在构造函数中,UpdateFormatSettings属性的默认值被设置为True。当应用程序收到一个WM_WININICHANGE信息时,将检查UpdateFormatSettings属性。建议使用默认的格式化设定。然而,当在Delphi应用程序中更改格式化设定时,为避免在应用程序运行期间修改设定,应将UpdateFormatSettings属性设置为False。
TApplication::UpdateMetricSettings
用于指定是否更新对于提示窗口字体和图标标题字体的设定。
__property bool UpdateMetricSettings ={read=FUPdateMetricSettings,write =FUpdateMetricSettings, nodefault};当系统设定被修改时,使用UpdateMetricSettings属性,可以指定是否更新桌面上的提示窗口字体和图标标题字体以反映系统设定。在构造函数中,UpdateMetricSettings属性的初值被设置为True。
方法
TApplication::~TApplication
用于删除应用程序实例及与之相关的内存。
__fastcall virtoal~TApplication(void);
不调用~TApplication或delete。使用Application::Terminate可结束一个应用程序。在调用继续的析构函数之前,~TApplication信号通知应用程序已经被释放。然后释放在应用程序启动时创建的或在运行期间累积的钩状窗口、对象实例、对象以及列表的内存。因为Application拥有所有窗体,因此,在其析构函数中将删除所有窗体。
TApplication::BringToFront
将在桌面所有其他应用程序中的最后一个激活的窗口作为最前端窗口。
void__fastcall BringtoFront(void);
使用BringToFront过程,可以查找属于MainForm的最后激活的窗口并将其带到前台。BringToFront过程还可用于检查在使其成为最前端窗口前,该窗体是否可视和已激活。
TApplication::CancelHint
为控件取消提示的显示。
void__fastcall CancelHint(void);
应用程序很少直接调用CancelHint过程。CancelHint过程被内部使用以在适当的时候取消提示的显示,例如窗口为无效时或者关闭应用程序时。CancelHint过程调用一系列例程以完成对控件提示窗口的显示和定时问题的清除。
TApplication::ControlDestroyed
通知应用程序一个控件已被删除。
void__fastcall ControlDestroyed(Controls::TControl*Control);
ControlDestroyed过程作为内部使用并由TControl自动调用。没有需直接调用它的任何理由。ControlDestroyed过程通知应用程序,由Control参数传递的控件已被删除,以便应用程序指针,如MainForm和ActiveForm,被更新为指向一个有效控件对象或nil。
TApplication::CreateForm
创建一个新窗体。
void__fastcall CreateForm(System::TMetaClass*InstanceClass,void* Reference);应用程序很少需要加入对CreateForm过程的调用。一个典型的CreateForm过程的调用;当使用窗体设计器时,对自动创建的窗体进行处理。应用程序调用CreateForm过程,可在运行阶段动态地创建一个窗体。
CreateForm过程创建一个新的类型窗体,窗体类型由FormClass参数指定,并将其赋值给由Reference参数给出的变量。新窗体的所有者为Application对象。默认时,在工程中由第一次调用CreateForm过程创建的窗体,是工程的主窗体。
TApplication::CreateHandle
假如应用程序还没有主窗口,CreateHandle将为应用程序生成一个主窗口。
void__fastcall CreateHandle(void);
不能直接调用CreateHandle过程。在EXEs 中TApplication::Create调用CreateHandle过程。在DLLs中则不调用。CreateHandle过程封装了许多惯用的Windows程序在WinMain中。例如,CreateHandle过程注册Window Class,创建应用程序窗口以及确定如何显示应用程序窗口。
TApplication::HandleException
为应用程序提供异常的默认处理方法。
void__fastcall HandleException(System::TObject*Sender);
当执行产生一个不响应Windows信息的事件的定制组件时,HamdleException过程对组件记录器有用。为应用程序设定异常处理方法代码,使用OnException事件处理程序。
假如所有应用程序代码对一个异常的阻滞努力都无效的话,则应用程序自动调用Handl-eException方法,该方法日显示一个表示发生错误的对话框。异常对象为Eabort除外,假如存在OnException处理程序,则HandleException过程对其进行调用;否则 HandleEception过程调用 ShowException以显示一个表示发生错误的消息对话框。
TApplication ::HandleMessage
中断应用程序的执行,以便在回到应用程序控制之前,Windows 能够处理Windows消息队列中的单个消息。
void__fastcall HandleMessage(void );
假如消息队列为空,HandleMessage过程调用Application的 Idle方法,HandleMessage过程又反过来调用OnIdle事件处理程序(假如定义了该事件处理程序的话)。假如应用程序运行空的HandleMessage过程,则需要很长一段时间才能返回。因此当优先的行为被处理时,在等待处理消息为基础的某事时不要调用handleMessage过程。相对地,当处理消息之外的其他行为时,应调用ProcessMessage.
TApplication::helpCommand
提供了以WinHelp Aip(应用程序设计接口)中的任何帮助命令的快速存取。
bool __fastcall HelpCommand (int Command .int Data ):
使用Helpcommand函数可存取 WinHelp 。HelpCommand 函数是一个嵌套函数,它只须调用 一个调用OnHelp事件的方法。
TApplication::helpcontext
为一个应用程序显示帮助文件。
bool__fastcall HelpContext (Classes ::THelpContext Context);
使用HelpContext函数可为应用程序提出在CurrentHelpFile属性中指定的Helpcontext函数直接调用OnHelp事件。Helpcontext函数传递包含在HelpFile 中有文件名称以及在Context参数传递的上下文编号。例如,假如context数值为714,helpcontext方法将在屏幕是显示帮助文件中714的上下文帮助ID。
假如Helpfile是一个空字符串,HelpJump函数返回False,这表明应用程序没有帮助文件。在其他所有情况下,HelpJurmp函数返回True。
TApplication::HideHint
隐藏当前的提示。
void__fastcall HideHint(void);
应用程序很少直接调用Hide过程。HideHint过程被内部使用,根据预设的条件和计时器数值,在适当的时候隐藏提示窗口。例如,CancelHint调用HideHint过程。
TApplication::HintMouseMessage
调整提示窗口的显示。
void__fastcall HintMouseMessage(Controls::TControl* Control,Messages::TMessage &Message);
应用程序很少直接调用HintMouseMessage过程。HintMouseMessage过程由内部使用,以治理提示窗口的显示。
TApplication::HookMainWindow
使一个非C++Builder对话框能够接收送到应用程序的主窗口的信息。
void__fastcall HookMainWindow(TWindowHook &Hook);
使用HookMainWindow 可以使非C+ + Builder 对话框能够如同子应用程序一样工作,而不是作为单独的窗口。例如,在调用HookMainWindow后,可以使用Alt + Tab在应用窗口中进行切换。当由Handle属性标识的窗口接收相关的对话框消息时,窗口把它作为Hook参数传递给对话过程。Hook参数为TWindowHook类型,是用于非Delphi对话过程的方法指针。除语法有点不同外,对话过程与窗口过程在处理对话框消息时相似。
对话框可以与主窗口挂接,一旦关闭对话框,将调用UnhookMainWindow方法释放挂接。
TApplication::Initalize
Initalize过程为初始化诸如OLE自动控制这样的分系统提供了机会。
void __fastcall Initalize(void);
Initalize过程是每个Delphi工程第一个调用的方法。它调用InitProc过程指针。默认时,由于InitProc过程指针为nil,因此应用程序调用Initalize过程不执行任何操作。为使用Initalize过程,必须预先确定InitProc过程指针。这可以通过下面两种方法的其中一个来完成:
包含一个定义InitProc的单元,如OleAuto单元。
创建一个给InitProc过程指针赋值的自定义初始化过程,并且加入一个工程源文件对调用该过程要先于调用Initalize的过程。
在一个应用程序中只能定义一个InitProc的实例。假如不止一个单元为InitProc设定了一个数值,则仅是最后一次赋值的单元工作。对于没有对InitProc设定一个数值的工程,对Initalize过程的调用可能完全从工程源文件中删除。尽管Initalize过程是主工程源文件代码第一个调用的方法,但它并不是应用程序第一个被执行的代码。应用程度首先执行由应用程序使用的所有单元的Initalization部分。
TApplication::MessageBox
MessageBox函数用于向用户显示一个指定的消息。
int __fastcall MessageBox(char * Text,char * Caption,int Flags);
使用MessageBox函数,可以显示一个普通的消息对话框,框内有一个或多个按扭。Caption参数是对话框的标题且是可选的。MessageBox函数是一个Windows API MessageBox函数的封装。TApplication的MessageBox函数封装自动为Windows API函数提供所需的缺少的窗口句柄参数。
Text参数的数值是要显示的消息,假如需要消息长度可超过255个字符。长消息还可在消息框中自动z绕回。Caption参数的数值是显示在对话框标题栏的标题,Caption参数的长度也可超过255个字符,但不能绕回。长标题产生宽的消息框。
关于Flags参数的可能数值,参见Windows API 帮助文件中的MessageBox函数。在该帮助文件上,相对应的参数被称为TextType。Flags参数的数值确定在消息框显示的按钮以及消息框的行为。为获得想要的效果,可以对Flags参数的数值进行组合。假如内存不够创建消息框,则MessageBox函数返回值为0。其他的返回值见下表:
TApplication::Minimize
使用程序缩小到Windows任务栏上(最小化)。
void__fsteall Minimize (void);
直接调用Minimize过程以最小化应用程序。当用户最小化应用程序时,自动调用Minimize方法。不要将Minimize方法与最小化一个窗体或窗口相混淆。对一个窗体或窗口的最小化、最大化功恢复,将改变WindowState属性的数值。
TApplication::NormalizeAllTopMosts
使已被指定作为最前端的窗体含主窗口(它们的FormStyle属性为fsAtayOnTop)和行为就像不是最前端的窗体一样。
void__fastcall NormalizeAllTopMosts(void);
NormalizeAllTopMosts过程 的行为与NormalizeTopMosts方法类似。不同的是前者还包括主窗口。
TApplication::NormalizeTopMosts
使已被指定作为最前端的窗体(它们的formStyle属性为fsStayOnTop)的行为就像不是最前端的窗体一样。
void__fastcall NormalizetopMosts(void);
在使用NormalizeTopMosts过程中,可以使一个直接使用Windows API函数(如MessageBox 以及MessageDLG)显示的消息框或对话框,出现在最前端的窗体上面。否则,保持在最前端的窗体将隐藏消息框。
当使用Delphi方法和函数显示消息框昧是必需调用NormalizeToppMosts过程。为使以fsStayOnTop指定的窗体重新回到最前端,可调用RestoreTopMosts过程。
TApplication::ProcessMessages
暂时中断应用程序的执行,以使Windows能够应事件。
void__fastcall ProcessMessages(void):
调用processMessages过程,以答应Windows处理调用ProcessMessages过程时产生的事件。ProcessMessages方法使windows消息循环直至windows消息空,然后返回到应用程序。
注重:忽略消息处理只影响调用ProcessMessages过程的应用程序,而不影响其他应用程序。在冗长有运算中,定期地调用ProcessMessages过程可答应应用程序能够响应绘画和其他消息。
ProcessMessages过程不答应应用程序执行空操作,但HandleMessages过程答应。
TApplication::Restore
恢复一个最小化的应用程序至正常大小。
void__fastcall Restore(void);
使用Restore 过程,可以恢复应用程序至其最小化前的先前大小。当用户恢复应用程序至正常大小时,自动调用Restore方法。不要将Restore方法与恢复一个窗体或窗口至其原始大小相混淆。
TApplication::restoreTopMosts
使fsStayOnTop指定的窗体重新恢复到最前端。
void __fastcall RestoreTopMosts(void);
使用RestoreTopMosts过程,可以使最初被指定为最前端的窗体(FormStyle属性为fsStayOnTop重新回到最前端位置。这些窗体是用NormalizeTopMosts方法暂时成为非最前端窗体的。
TApplication::run;
Run过程用于执行应用程序。
void __fastcall Run(void);
Run过程包含应用程序的主信息循环。当应用程序的信息循环终止时,对Run过程的调用才能退出。创建一个新工程时,Delphi自动在工程文件中建立一个调用Run过程的主程序块。当应用程序执行时,调用应用Run方法。
TApplication::ShowException
在消息框中显示发生在应用程序中的异常。
void__fastcall ShowException(sysutils::Exception*E);
假如没有为OnException事件指定处理程序,ShowException过程被Handleexception作为默认调用。假如一个异常处理程序滤过异常,对于那些没有滤过的异常,需要调用ShowException过程。
指定应用程序如何进行异常处理,需要为OnException事件写一个处理程序。由于默认的VCI异常处理程序将自动调用ShowException过程,因此在C++Builder应用程序中,很少需要调用ShowException过程。
TApplication::Tapplication
创建一个新的应用程序。
__fastcall virtual TApplication (Chasses ::TCommponent*AOwner);
应用程序不直接调用TApplication构造函数。每一个C+ + Builder应用程序自动创建一个应用程序对象的实例。对于TApplication对象,Create方法为其一些属性设置默认值。 C+ +Breate方法构造函数还可使应用程序预备运行,例如通过建立提示窗口、应用程序图标、主窗口句柄、HInstance及治理主窗口(窗体)的子窗口的列表等。
TApplication::Terminate
Terminate过程用于结束应用程序的执行。
void __fasteall Terminate ( void ):
Terminate过程调用Windows API 的PostQitMessage函数,以完成应用程序的顺序关闭。Terminate 过程不是即时的。WM—QUIT消息和关闭主窗体,Trminate过程被自动调用。
TApplication::UnhookMainWindow
释放先前通过调用HookMainWindow 方法挂接的对话过程。
void__fastcall UnhookMainWindow (TWindow Hook&Hook);
使用UnhookMainWindow 过程,可以释放挂接的窗口。指定对话过程作为Hook参数的数值。TWindowHook类型中InhookMainWindow方法使用的参数类型。它是一个非Delphi对话框的对话过程使用的方法指针类型。对一个窗口而言,对话过程类似于一个窗口过程,在对话过程中为 对话框处理信息,但它的语法略有不同。
关于Windows挂接的更多信息,参见Windows帮助文件中的SetWindowsEx 函数和UnhookWindowsEx函数。
TApplication::OnActivate
当应用程序变为活动时,OnActivate事件发生。
__proprty classes::TNotifyEvent OnActivate = {read = fOnTctivate, write = TOnactivate } ;
当应用程序被激活时,使用OnActivate事件可以写一个事件处理程序以招执行特定的处理。一个应用程序在下列情况下被子激活;当应用程序开始运行时,或者当焦点从另一Windows应用程序移回到该应用程序的任何窗口时。
TApplication ::OnDeactivate
当一个应用程序变为非活动时,Ondeactivate事件发生。
__property classes ::TNotifyEvent OnDeactivate = {read = FOnDeactivate,Write =FOnDeactivate };
使用在应用程序变为非激活之前立即产生的OnDeavtivate事件,可以指定任何特定的处理。当用户从该应用程序切换到另一Windows 应用程序时,OnDeacativate事件发生。
TApplication ::OnException
在应用程序中出现一个未处理异常时,OnException事件发生。
__ptoperty TExceptionEvent OnException = {read = FOnException,write = ROnException};
使用OnException事件可以修改应用程序中出现一个未处理异常期间的默认行为。在HandleException方法中自动调用OnException事件处理程序。OnException事件只处理在信息处理期间产生的异常。在Application::Run执行之前或之后产生的异常。不能产生OnException事件。
假如一个异常通过了应用程序代码中的try 块,则应用程序自动调用HandleException方法,除非异常对象为EAbort。否则HandleWxception方法调用存在的OnException事件处理程序。假如OnWxception事件处理程序不存在,HandeException方法则调用TException以显示一个指示产生错误的消息对话框。TExceptionEvent类型是OnException事件的类型,它指向应用程序中处理异常的一个方法。Sender参数为引发异常有对象,E参数为异常对象。
TApplication::OaHelp
当应用程序收到一个帮助的请求时,OnHelp事件发生。
__Property Classes::THelpevent OnHelp ={read=FOnHelp,write=FOnHelp};
使用OnHelp事件,可以写一个被请求帮助时执行特定处理的事件处理程序。HelpContext方法自动引发OnHelp事件。将CallHelp参数设为True,可以使VCL在出现请求帮助事件时调用WinHelp。将CallHelp参数设为False,可避免VCL调用WinHelp。
所有应用程序帮助方法都经过OnHelp事件。只在OnHelp事件的CallHelp参数返回True或者OnHelp事件没有被设定时,才调用WinHelp。为得到Command参数和DataCD数据数值,应在Win32开发参考帮助文件(Win32.HLP)中查找。这个帮助文件点明的WinHelp API(应用程序设计接口)。Data参数的数值视Command 参数的数值情况而定。若函数运行成功,则返回True否则返回False。
TApplication::OnHint
当鼠标光标移到一个能够显示帮助提示的控件或菜单选项上时,OnHint事件发生。
__property Classes::TNotifyEvent OnHint = {read=FOnHint,write=FOnHint};
使用OnHint事件,可以写一个产生OnHint事件时执行特定处理的事件处理程序。当用户鼠标光标位于Hint属性数值为一个非空字符串("")的控件上时,OnHint事件发生。
OnHint事件的通常用法是,像显示面板控件(TStatusBar)的标题一样,显示控件或菜单选项的Hint属性数值,并籍此像使用状态栏一样使用面板。OnHint事件产生时,Hint属性能够指定一个帮助提示以及一个出现在别处的常用提示。
TApplication::OnIdle
当应用程序变为空闲时,OnIdle事件发生。
__property TIdleEvent OnIdle = {read=FOnIdle,write=FOnIdle};
使用OnIdle事件,可以写一个应用程序空闲时执行特定处理的事件处理程序。当应用程序不处理代码时,称为应用程序空闲。例如,当应用程序等待来自用户的输入时,应用程序为空闲。
TIdleEvent类型是OnIdle事件的类型,它指向一个应用程序空闲时运行的方法。TIdleEvent类型有一个布尔型参数Done,默认时该参数为True。若参数Done为True,当OnIdle事件返回时,调用Windows API WaitMessage函数。只有在应用程序消息队列中出现一个新消息时,WaitMessage函数才放弃对其他应用程序的控制。参数Done为False时,即使应用程序不忙,也不放弃对其他应用程序的控制。
当应用程序转移到空闲状态时,只调用一次OnIdle事件。除非参数Done设置为False,否则不连续调用OnIdle事件。将参数Done设置为False的应用程序,将消耗过多的CPU时间,从而影响整个系统性能。
TApplication::OnMessage
当应用程序收到Windows消息时,OnMessage事件发生。
typedef void__fastcall (__closure * TMessageEvent)(tagMSG &Msg, bool &Handled);
__property TMessageEvent OnMessage ={read=FOnMessage,write=FOnMessage};
使用OnMessage事件,可以捕捉任何或所有告知应用程序中所有窗口的Windows消息。当应用程序收到一个Windows消息时,产生OnMessage事件。在应用程序中,一个OnMessage事件处理程序的创建,可答应其他处理程序而不是那些为TApplication对象在事件中声明的处理程序的响应消息。假如应用程序没有一个针对输入消息的特定处理程序,则消息将被发送到它所期望的窗口且Windows处理消息。
TmessageEvent类型是OnMessage事件的类型,它指向一个对输入的Windows消息进行处理的方法。Msg参数用于识别Windows消息,Handled参数确定是否对消息进行处理。假如已完成对消息的处理,则Handled参数被设为True以避免正常的消息的处理。
注重:OnMessage事件只接收向消息队列告知的消息而不是那些用Windows API的SendMessage函数直接发送的消息,每秒钟将有成千上万的消息流经OnMessage事件。由于OnMessage事件处理程序能够影响整个应用程序的执行。因此,编写事件处理程序代码时要小心。
TApplication::OnNinimize
当应用程序被最小化时OnMinimize事件发生。
__property Classes::TNotifyEventOnMinimize= {read = FOnMinimize, write = FOnMinimize};
使用OnMinimize 事件,可以写一个应用程序被最小化时执行特定处理的事件处理程序。应用程序被最小化,或是因为用户最小化了主窗口,或是因为调用了Minimize方法。Icon属性确定代表最小化有应用程序的图标。
TApplication ::OnRestore
当先前被最小化的应用程序恢复到正常大小时,OnRestore事件发生。
__property Classes :: TNotifyEvent OnRestore = {read = FOnRestore, write = FOnRestore };
使用onrestore事件,可以写一个应用程序从以一个图标出现的最小化状态被恢复时执行特定处理的事件处理程序。应用程序被恢复,或是因为用户恢复应用程序,或是因为应用程序调用了Restore方法。不要将恢复一个应用程序与恢复一个窗体或窗口至原始大小相混淆。对一个窗体或窗口的最小化、最大化或恢复,将改变WindowState属性的数值。
TApplication::OnShowHint
当应用程序着手为单个控件的帮助提示一个提示窗口时,OnShowHint事件发生。
__property TShowHintEvert OnShow Hint ={read =FOnShowHInt,write =FOnShowHint};
使用OnShowHint事件,可以写一个修改帮助提示的外观和行为的事件处理程序.TShowHinrEvent类型是OnShowHint 事件的类型,它指向一个为控件显示帮助提示的方法。HintStr参数设置帮助提示的文本。若要获取单个控件的提示文本,应调用GetLongHit函数或GetShoretHint函数并将结果赋值给HintStr参数。若要修改文本,只需修改该字符串的内容即可。
使用CanShow变量参数,可以答应阻止帮助提示的显示。假如CanShow变量参数为True,显示帮助提示CanShow变量参数为False,则不显示帮助提示。HintInfo参数是一个记录,它包含了关于帮助窗口的外观和行为的信息。
类关系 TObject→TPersistent→TComponent
TApplication 是一外封装Windows 应用程序的类。在Y职TApplication中引入的方法和属性,反映了 Windows 操作系统建立起来的如创建、运行、确认以及删除一个应用程序的基本情况。因此,当编写一个 Windows 应用程序时,TApplication简化了用户和 Windows 环境之间的接口。为此目的, TApplication封装了下列行为:
·Windows信息处理
·上下文相关的在线帮助
·菜单加速键和键处理
·异常情况处理
·为应用程序治理在Windows 操作系统中进行定义的基本部分,例如MainWindow、WindowClass 等。
每个C++Builder应用程序象声明应用程序实例一样,自动声明Application变量。假如C++Builder应用程序不是Web服务器应用程序,该变量将属于TApplication类型。因此,Tapplication 对象既不可能在元件选项板组件中出现,窗体设计者也不可能在进行可视化操作时使用。TApplication 对象没有公开的属性。然而,TApplication对象的一些公用特性可以在窗体设计阶段进行设置或修改;也可以在PRiject Options对话框中的Application页中进行设置或修改。
属性列表
Active 应用程序是否是活动的
AllowTesting 表示IDE的信息
DialogHandle 在应用程序中使用非Delphi对话框提供机制
ExeName 可执行应用程序的文件名称
Handle 提供对窗口句柄的访问
HelpFile 用于显示帮助的文件名称
Hint 显示在帮助提示框中的文本字符串
Hintcolor 确定提示框的颜色
HintHidePause 在隐匿帮助提示之前应等待的时间间隔
HintPause 在控件的帮助提示显示之前应经过的时间间隔
HintShortPause 在再次弹出提示前应等待的停顿时间
Icon 确定在Windows任务栏上代表应用程序的图标
MainForm 识别应用程序中的主窗口
ShowHint 确定帮助提示对整个应用程序是激活的还是失活的
ShowMainForm 确定应用程序启动时是否显示其主窗体
Terminated 报告应用程序是否已经收到WM--QUIT信息
Title 出现在应用程序图标下的文本
updateFormatSettings 是否自动更新格式化设定
UpdateMetricSettings 是否更新对于提示窗口字体和图标标题字体的设定
方法列表
~TApplication 用于删除应用程序实例及其与之相关的内存
BringToFront 将桌面最后一个激活的窗口作为最前端窗口
CancelHint 为控件取消提示的显示
ControlDestroyed 通知应用程序一控件被删除
CreateForm 创建一个新窗体
CreateHandle 为应用程序生成一主窗口
HandleException 为应用程序提供异常的默认处理方法
HandleMesage 中断应用程序以处理Windows消息队列中消息
HelpCommand 提供对API中的任何帮助命令的快速存取
HelpContext 为应用程序显示帮助文件
HelpJump 产生一个OnHelp事件
HideHint 隐藏当前的提示
HintMouseMessage 调整提示窗口的显示
HookMainWindow 使非Delphi对话框能够接收送到应用程序主窗口的信息
Initialize 为初始化的分系统提供了机会
MessageBox 向用户显示一个指定的消息
Minimize 使应用程序缩小到Windows任务栏上
NormalizeAllTopMosts 使最前端的窗体含主窗口的行为象不是最前端窗体一样
NormalizeTopMosts 使最前端的窗体的行为象不是最前端的窗体一样
ProcessMessages 中断应用程序以便Windows能够响应事件
Restore 恢复一个最小化的应用程序至正常大小
RestoreTopMosts 使faStayOnTop指定的窗体重新恢复到最前端
Run 执行应用程序
ShowException 显示发生在应用程序中的异常
TApplication 创建一个新的应用程序
Terminate 结束应用程序的执行
UnhookMainWindow 释放HookMainWindow方法挂钩的对话过程
事件列表
OnActivate 当应用程序变为活动时该事件发生
OnDeactivate 当应用程序变为非活动时该事件发生
OnFxception 在应用程序中出现未处理异常时该事件发生
OnHelp 当应用程序收到寿命的请求时该事件发生
OnHint 当光标移到帮助提示控件或菜单选项上时该事件发生
ONIdle 当应用程序变为空闲时该事件发生
OnMessage 当应用程序收到Windows消息时该事件发生
OnMninize 当应用程序被最小化时该事件发生
OnRestore 当被最小化的应用程序恢复时该事件发生
OnShowHint 当应用程序显示提示窗口时该事件发生
属性
Tpplication::AllowTesting
指定应用程序是否是活动的,是否有焦点。
__property bool Active = { read = FActive, nodefault } ;
Active属性属于只读属性。当应用程序是活动的,Active 属性为True ;应用程序是非活动的,ACtive属性为 False。在构造函数中,Active 属性被设置为True。假如窗体可应用程序具有焦点时,则应用程序是活动的。当来自另一个不同的应用程序的窗口变成活动的窗口时,原应用程序变成非活动的。关闭应用程序时,在析构函数中 Active属性被设置为False。
TApplication::AllowTesting
AllowTesting 属性表示IDE的信息。
__property bool AllowTesting ={ read = TAllowTesting ,write = FAllowTesting , nodefault };
不能使用AllowTesting属性,它仅供内部使用。
TApplication::DialogHandle
DialogHandle属性为在Delphi应用程序中使用非Delphi对话框提供了一个机制。
__property HWND DialogHandle = {read = GetDialogHandle,write = SetDialogHandle,nodefault };
当显示一个用CialogHandle API功能创建的一个非模态对话框时,使用DialogHandle属性。将DialogHandle属性设定为非模态对话框的句柄,能答应对话框理解来处自应用程序信息回路的信息。当对话框收到一个激活信息(WMNCACTIVATE)时,将DialogHandle属性设定为非模态对话框的句柄;当对话框收到下个失去活动的信息时,将DialogHandle属性设置为0。
TApplication::EXeName
包含包括中文路径信息的可执行应用程序的文件名称。
__property System::AnsiString ExeName = {read = GetExeName } ;
ExeName属性属于只读属性。使用ExeNarme属性可以获得应用程序可执行文件的名称。应用程序的名称是扩展名为::EXE的工程文件的根名。默认名为PROJECTI::EXE。若想改变ExeName属性,则用所需要的新根名保存工程文件并重建应用程序。ExeName属性能够反映工程文件名的改变。
TApplication::Handle
Handle属性提供对应用程序主窗体(窗口)的窗口句柄的访问。
__property HWND Handle={read=FHandle,write=SetHande,nodefault};
调用需要一个父窗口句柄的Windows API函数时,使用Handle属性。例如,在应用程序中,一个显示其最高层弹出式窗口的DLL,将需要一个父窗口以显示其窗口。使用Application::Handle可以使这样的窗口成为应用程序的一部分,因而它们可与应用程序一起进行最小化、最大化、激活以及失活。
注重:使用VCL窗体写一个DLL时,指定主EXE的主窗口的窗口句柄作为DLL的Application::Handle属性。这可使DLL的窗体成为主应用程序的一部分。在一个EXE中不要对Application::Handle赋值。
TApplication::HelpFile
指定应用程序用于显示帮助的文件名称。
__property System::AnsiString HelpFile={read=FHelpFile,write=FHelpFile};
对于有一个帮助文件与Windows Help系统一起使用的应用程序,使用HelpFile属性。Windows显示由HelpFile属性指定的文件。或者在运行阶段给HelpFile属性指定一个文件名,或者在设计阶段在Project|Options对话框的Application页中指定一个帮助文件。默认时,HelpFile属性为一零字符串,且应用程序的Help方法忽略显示帮助的尝试。假如HelpFile属性包含任何字符串,HelpContext方法将其传递至Windows Help系统作为使用帮助的文件名。假如已经设置了活动窗体的帮助文件,则将显示该帮助文件而不是显示应用程序的帮助文件。
TApplication::Hint
指定显示在帮助提示框中的文体字符串。
__property System::AnsiString Hint = {read=FHint,wrte=SetHint};
TApplication对象的Hint属性被赋值为控件的Hint属性数值或鼠标当前移在其上的菜单选项。Hint属性还或赋值为一个字符串数值,以告知用户一些行为、错误或其他类型信息。因此,或从两方面使用Hint属性:
使用OnHint事件处理程序,可以从控件至另一诸如状态栏的显示区域上移动提示。这属于读Hint属性。
当应用程序正在处理一些行为时,显示应用程序的状态。这属于设置Hint属性。
当发生OnHint事件时,显示帮助提示。因此,假如TApplication对象的Hint属性被赋值为状态栏的标题,状态栏控件的标题显示OnHint事件中预期的Hint属性的当前字符串数值。Hint属性字符串有两种形式:短提示和长提示。短提示通常由弹出式工具技巧使用。长提示通常由状态根据地使用,相互向以“|”字符隔开。从Controls单元中,使用全局函数GetShortHint和GetLongHint,可以从一个提示字符串中取出短提示和长提示。
注重:在应用程序中,将Hint属性设置为一个告知用户事件发生的信息时。应当牢记:当鼠标移到一个控件上,默认时,Hint属性字符串被重新设定为控件的Hint属性。
TApplication::HintColor
为应用程序的帮助提示,用来确定提示框的颜色。
__property Graphics::TColor HintColor = {read=FHintColor,write=SetHintColor,nodefault};使用HintColor属性,可以指定提示框的颜色。创建应用程序时,在构造函数中将HintColor属性设置为clInfoBk默认颜色数值。若要修改HintColor属性,应在运行阶段将其赋值为一个新的TColor数值。
TApplication::HintHidePause
假如鼠标没有从控件或者菜单选项是移开, HintHidePause属性指定在隐匿帮助指示之前应等待的时间间隔。
__property int HintHidePause = {read =FHintHidePause ,write =FHintHidePause,nodefault };
使用HintHidePause属性,可以指定一个以毫秒表示的等待时间,这不同于在构造函数中设置的2 500毫秒或者2::5秒的默认数值。控件或者菜单选项的帮助提示在Hint属性中指定。默认值是一个预先确定的常量,它要比HintHidePause属性长数倍。
TApplication::HintPause
当用户将鼠标光标置于一个控件或者菜单选项时,HintPause 属性用于指定在控件的帮助提示显示之前应经过的时间间隔。
__property int HintPause = {read =FHintPause,write =FhintPause,nodefault};
使用HintPause属性,可以修改在构造函数中设置500毫秒功0::5秒的默认停顿时间。当对HintPause属性赋值时指定时间间隔以毫秒表示。停顿结束时,显示在Hint属性中指定的帮助提示。
TApplication::HintShorPause
假如提示信息已经显示,HintShortPause属性指定在再次弹出指示前应等待的停顿时间。
___property int HintShortPause ={read =FHintShortpuse ,write =FJintShortPause ,nodefault };
在一套均有帮助指示的按钮上快速移动鼠标时,使用HintShortPause属性可以使减少鼠标的闪烁。用毫秒指定一个数值不同于在构造函数中设置的 50ms的默认数值。
TApplication::Icon
确定在Windows任务栏上哪一个图标代表应用程序。
__property Graphics::TIcon*Icon ={read=FIcon,write =SetIcon};
使用Icon属性,可以设定一个特定的图标来代表应用程序。设置Icon属性可按下述中的一个进行。
·运行阶段,为其设定一个TIcon。
·设计阶段,在Project Options 对话框的Application页中装入一个图标。
当应用程序被最小化时,图标代表应用程序。在Windows桌面或Windows95的任务栏上也可显示图标。
TApplication::MainForm
识别应用程序中的哪一个窗体是主窗口。
__property TForm *MainForm +{read =FMainForm};
使用MainForm属性,可以指定一个不同于默认时的窗体作为应用程序的主窗口。通过CreateForm方法创建第一个窗体时,MainForm属性数值即被设置。当创建一个新工程时,Forml自动成为MainForm属性的数值。若要为MainForm属性设定一个不同的窗体,在设计阶段,使用Project|Options对话框的Forms页进行设置。由于MaainForm属性属于只读属性,因此,在运行阶段MainForm属性不能被修改。
主窗体是在应用程序的主体中创建的第一个窗体。主窗体关闭时,应用程序终止。
TApplication::ShowHint
确定帮助提示对整个应用程序是激活的还是失活的。
__property bool ShowHint = {read=FShowHint,write=SetShowHint,nodefault};
使用ShowHint属性,可以选择何时显示帮助提示。假如ShowHint属性为True,显示帮助提示;假如ShowHint属性为False,帮助提示不显示。ShowHint属性的默认值为True。帮助提示在Hint属性中指定。不论单个控件的ShowHint属性的数值是什么,将应用程序的ShowHint属性设置为False,将使所有的帮助提示不能使用。
TApplication::ShowMainForm
ShowMainForm属性用于确定应用程序启动时是否显示其主窗体。
__property bool ShowMainForm ={read=FShowMainForm,write=FShowMainForm,nodefault};
使用ShowMainForm属性,可以控制应用程序启动时是否显示主窗体。在构造函数中,ShowMainForm属性的默认数值被设置为True。默认时显示主窗体。MaainForm属性指定哪一个窗体是主窗体。欲在应用程序启动时隐藏主窗体,就在调用Application::Run之前,在主工程文件中将ShowMainForm属性设置为False,同时应确认窗体的Visible属性也为False。执行OLE自动控制服务器程序,为隐藏服务器程序启动时的主窗体,ShowMainForm属性是十分有用的。
TApplicatioon::Terminated
报告应用程序是否已经收到Windows的WM_QUTT信息,然后终止应用程序。
__property bool Terminated = {read=FTerminate,nodefault};
Terminated属性属于只读属性。调用ProcessMessages方法时才使用Terminated属性,以便使应用程序在退出后不再处理Windows的信息。当ProcessMessages方法收到一个WM_WUTT信息时,将Terminated属性设置为True。因为应用程序的主窗口已经关闭。或者因为已经调用了Terminate方法,因此,一个Delphi应用程序经常收到一个WM_QUTT信息。对于使用集中循环的应用程序,将定期地调用Application::ProcessMessages方法并检查Appication::Terminated属性,以确定是否退出计算,以便应用程序能终止运行。
TApplication::Title
当应用程序被最小化时,Title 属性包含了出现在应用程序图标下的文本。
__property System::AnsiString Title = { read =GetTitle,write =SetTitle };
使用Title属性,可以修改出现在应用程序图标下的这个文本字符串的名称。在运行阶段。 Title属性的默认值取DLL/EXE文件名。在运行阶段,Title ntg属性,或者在ProjectOptions 对话框的Application页中输入 Title属性的数值。
TApplication::UpdateFormatSettings
当用户修改了系统配套时,UpdateFormatSettings属性用于指定是否自动更新格式化设定。
__property bool UpdateFormatSettings ={ read =FUpdateFormatSettings,wrute =FUpdateFormatSettings , nodefault } ;
使用 UpdateFormatSettings属性以控制格式化设定的自动更新。在构造函数中,UpdateFormatSettings属性的默认值被设置为True。当应用程序收到一个WM_WININICHANGE信息时,将检查UpdateFormatSettings属性。建议使用默认的格式化设定。然而,当在Delphi应用程序中更改格式化设定时,为避免在应用程序运行期间修改设定,应将UpdateFormatSettings属性设置为False。
TApplication::UpdateMetricSettings
用于指定是否更新对于提示窗口字体和图标标题字体的设定。
__property bool UpdateMetricSettings ={read=FUPdateMetricSettings,write =FUpdateMetricSettings, nodefault};当系统设定被修改时,使用UpdateMetricSettings属性,可以指定是否更新桌面上的提示窗口字体和图标标题字体以反映系统设定。在构造函数中,UpdateMetricSettings属性的初值被设置为True。
方法
TApplication::~TApplication
用于删除应用程序实例及与之相关的内存。
__fastcall virtoal~TApplication(void);
不调用~TApplication或delete。使用Application::Terminate可结束一个应用程序。在调用继续的析构函数之前,~TApplication信号通知应用程序已经被释放。然后释放在应用程序启动时创建的或在运行期间累积的钩状窗口、对象实例、对象以及列表的内存。因为Application拥有所有窗体,因此,在其析构函数中将删除所有窗体。
TApplication::BringToFront
将在桌面所有其他应用程序中的最后一个激活的窗口作为最前端窗口。
void__fastcall BringtoFront(void);
使用BringToFront过程,可以查找属于MainForm的最后激活的窗口并将其带到前台。BringToFront过程还可用于检查在使其成为最前端窗口前,该窗体是否可视和已激活。
TApplication::CancelHint
为控件取消提示的显示。
void__fastcall CancelHint(void);
应用程序很少直接调用CancelHint过程。CancelHint过程被内部使用以在适当的时候取消提示的显示,例如窗口为无效时或者关闭应用程序时。CancelHint过程调用一系列例程以完成对控件提示窗口的显示和定时问题的清除。
TApplication::ControlDestroyed
通知应用程序一个控件已被删除。
void__fastcall ControlDestroyed(Controls::TControl*Control);
ControlDestroyed过程作为内部使用并由TControl自动调用。没有需直接调用它的任何理由。ControlDestroyed过程通知应用程序,由Control参数传递的控件已被删除,以便应用程序指针,如MainForm和ActiveForm,被更新为指向一个有效控件对象或nil。
TApplication::CreateForm
创建一个新窗体。
void__fastcall CreateForm(System::TMetaClass*InstanceClass,void* Reference);应用程序很少需要加入对CreateForm过程的调用。一个典型的CreateForm过程的调用;当使用窗体设计器时,对自动创建的窗体进行处理。应用程序调用CreateForm过程,可在运行阶段动态地创建一个窗体。
CreateForm过程创建一个新的类型窗体,窗体类型由FormClass参数指定,并将其赋值给由Reference参数给出的变量。新窗体的所有者为Application对象。默认时,在工程中由第一次调用CreateForm过程创建的窗体,是工程的主窗体。
TApplication::CreateHandle
假如应用程序还没有主窗口,CreateHandle将为应用程序生成一个主窗口。
void__fastcall CreateHandle(void);
不能直接调用CreateHandle过程。在EXEs 中TApplication::Create调用CreateHandle过程。在DLLs中则不调用。CreateHandle过程封装了许多惯用的Windows程序在WinMain中。例如,CreateHandle过程注册Window Class,创建应用程序窗口以及确定如何显示应用程序窗口。
TApplication::HandleException
为应用程序提供异常的默认处理方法。
void__fastcall HandleException(System::TObject*Sender);
当执行产生一个不响应Windows信息的事件的定制组件时,HamdleException过程对组件记录器有用。为应用程序设定异常处理方法代码,使用OnException事件处理程序。
假如所有应用程序代码对一个异常的阻滞努力都无效的话,则应用程序自动调用Handl-eException方法,该方法日显示一个表示发生错误的对话框。异常对象为Eabort除外,假如存在OnException处理程序,则HandleException过程对其进行调用;否则 HandleEception过程调用 ShowException以显示一个表示发生错误的消息对话框。
TApplication ::HandleMessage
中断应用程序的执行,以便在回到应用程序控制之前,Windows 能够处理Windows消息队列中的单个消息。
void__fastcall HandleMessage(void );
假如消息队列为空,HandleMessage过程调用Application的 Idle方法,HandleMessage过程又反过来调用OnIdle事件处理程序(假如定义了该事件处理程序的话)。假如应用程序运行空的HandleMessage过程,则需要很长一段时间才能返回。因此当优先的行为被处理时,在等待处理消息为基础的某事时不要调用handleMessage过程。相对地,当处理消息之外的其他行为时,应调用ProcessMessage.
TApplication::helpCommand
提供了以WinHelp Aip(应用程序设计接口)中的任何帮助命令的快速存取。
bool __fastcall HelpCommand (int Command .int Data ):
使用Helpcommand函数可存取 WinHelp 。HelpCommand 函数是一个嵌套函数,它只须调用 一个调用OnHelp事件的方法。
TApplication::helpcontext
为一个应用程序显示帮助文件。
bool__fastcall HelpContext (Classes ::THelpContext Context);
使用HelpContext函数可为应用程序提出在CurrentHelpFile属性中指定的Helpcontext函数直接调用OnHelp事件。Helpcontext函数传递包含在HelpFile 中有文件名称以及在Context参数传递的上下文编号。例如,假如context数值为714,helpcontext方法将在屏幕是显示帮助文件中714的上下文帮助ID。
假如Helpfile是一个空字符串,HelpJump函数返回False,这表明应用程序没有帮助文件。在其他所有情况下,HelpJurmp函数返回True。
TApplication::HideHint
隐藏当前的提示。
void__fastcall HideHint(void);
应用程序很少直接调用Hide过程。HideHint过程被内部使用,根据预设的条件和计时器数值,在适当的时候隐藏提示窗口。例如,CancelHint调用HideHint过程。
TApplication::HintMouseMessage
调整提示窗口的显示。
void__fastcall HintMouseMessage(Controls::TControl* Control,Messages::TMessage &Message);
应用程序很少直接调用HintMouseMessage过程。HintMouseMessage过程由内部使用,以治理提示窗口的显示。
TApplication::HookMainWindow
使一个非C++Builder对话框能够接收送到应用程序的主窗口的信息。
void__fastcall HookMainWindow(TWindowHook &Hook);
使用HookMainWindow 可以使非C+ + Builder 对话框能够如同子应用程序一样工作,而不是作为单独的窗口。例如,在调用HookMainWindow后,可以使用Alt + Tab在应用窗口中进行切换。当由Handle属性标识的窗口接收相关的对话框消息时,窗口把它作为Hook参数传递给对话过程。Hook参数为TWindowHook类型,是用于非Delphi对话过程的方法指针。除语法有点不同外,对话过程与窗口过程在处理对话框消息时相似。
对话框可以与主窗口挂接,一旦关闭对话框,将调用UnhookMainWindow方法释放挂接。
TApplication::Initalize
Initalize过程为初始化诸如OLE自动控制这样的分系统提供了机会。
void __fastcall Initalize(void);
Initalize过程是每个Delphi工程第一个调用的方法。它调用InitProc过程指针。默认时,由于InitProc过程指针为nil,因此应用程序调用Initalize过程不执行任何操作。为使用Initalize过程,必须预先确定InitProc过程指针。这可以通过下面两种方法的其中一个来完成:
包含一个定义InitProc的单元,如OleAuto单元。
创建一个给InitProc过程指针赋值的自定义初始化过程,并且加入一个工程源文件对调用该过程要先于调用Initalize的过程。
在一个应用程序中只能定义一个InitProc的实例。假如不止一个单元为InitProc设定了一个数值,则仅是最后一次赋值的单元工作。对于没有对InitProc设定一个数值的工程,对Initalize过程的调用可能完全从工程源文件中删除。尽管Initalize过程是主工程源文件代码第一个调用的方法,但它并不是应用程序第一个被执行的代码。应用程度首先执行由应用程序使用的所有单元的Initalization部分。
TApplication::MessageBox
MessageBox函数用于向用户显示一个指定的消息。
int __fastcall MessageBox(char * Text,char * Caption,int Flags);
使用MessageBox函数,可以显示一个普通的消息对话框,框内有一个或多个按扭。Caption参数是对话框的标题且是可选的。MessageBox函数是一个Windows API MessageBox函数的封装。TApplication的MessageBox函数封装自动为Windows API函数提供所需的缺少的窗口句柄参数。
Text参数的数值是要显示的消息,假如需要消息长度可超过255个字符。长消息还可在消息框中自动z绕回。Caption参数的数值是显示在对话框标题栏的标题,Caption参数的长度也可超过255个字符,但不能绕回。长标题产生宽的消息框。
关于Flags参数的可能数值,参见Windows API 帮助文件中的MessageBox函数。在该帮助文件上,相对应的参数被称为TextType。Flags参数的数值确定在消息框显示的按钮以及消息框的行为。为获得想要的效果,可以对Flags参数的数值进行组合。假如内存不够创建消息框,则MessageBox函数返回值为0。其他的返回值见下表:
TApplication::Minimize
使用程序缩小到Windows任务栏上(最小化)。
void__fsteall Minimize (void);
直接调用Minimize过程以最小化应用程序。当用户最小化应用程序时,自动调用Minimize方法。不要将Minimize方法与最小化一个窗体或窗口相混淆。对一个窗体或窗口的最小化、最大化功恢复,将改变WindowState属性的数值。
TApplication::NormalizeAllTopMosts
使已被指定作为最前端的窗体含主窗口(它们的FormStyle属性为fsAtayOnTop)和行为就像不是最前端的窗体一样。
void__fastcall NormalizeAllTopMosts(void);
NormalizeAllTopMosts过程 的行为与NormalizeTopMosts方法类似。不同的是前者还包括主窗口。
TApplication::NormalizeTopMosts
使已被指定作为最前端的窗体(它们的formStyle属性为fsStayOnTop)的行为就像不是最前端的窗体一样。
void__fastcall NormalizetopMosts(void);
在使用NormalizeTopMosts过程中,可以使一个直接使用Windows API函数(如MessageBox 以及MessageDLG)显示的消息框或对话框,出现在最前端的窗体上面。否则,保持在最前端的窗体将隐藏消息框。
当使用Delphi方法和函数显示消息框昧是必需调用NormalizeToppMosts过程。为使以fsStayOnTop指定的窗体重新回到最前端,可调用RestoreTopMosts过程。
TApplication::ProcessMessages
暂时中断应用程序的执行,以使Windows能够应事件。
void__fastcall ProcessMessages(void):
调用processMessages过程,以答应Windows处理调用ProcessMessages过程时产生的事件。ProcessMessages方法使windows消息循环直至windows消息空,然后返回到应用程序。
注重:忽略消息处理只影响调用ProcessMessages过程的应用程序,而不影响其他应用程序。在冗长有运算中,定期地调用ProcessMessages过程可答应应用程序能够响应绘画和其他消息。
ProcessMessages过程不答应应用程序执行空操作,但HandleMessages过程答应。
TApplication::Restore
恢复一个最小化的应用程序至正常大小。
void__fastcall Restore(void);
使用Restore 过程,可以恢复应用程序至其最小化前的先前大小。当用户恢复应用程序至正常大小时,自动调用Restore方法。不要将Restore方法与恢复一个窗体或窗口至其原始大小相混淆。
TApplication::restoreTopMosts
使fsStayOnTop指定的窗体重新恢复到最前端。
void __fastcall RestoreTopMosts(void);
使用RestoreTopMosts过程,可以使最初被指定为最前端的窗体(FormStyle属性为fsStayOnTop重新回到最前端位置。这些窗体是用NormalizeTopMosts方法暂时成为非最前端窗体的。
TApplication::run;
Run过程用于执行应用程序。
void __fastcall Run(void);
Run过程包含应用程序的主信息循环。当应用程序的信息循环终止时,对Run过程的调用才能退出。创建一个新工程时,Delphi自动在工程文件中建立一个调用Run过程的主程序块。当应用程序执行时,调用应用Run方法。
TApplication::ShowException
在消息框中显示发生在应用程序中的异常。
void__fastcall ShowException(sysutils::Exception*E);
假如没有为OnException事件指定处理程序,ShowException过程被Handleexception作为默认调用。假如一个异常处理程序滤过异常,对于那些没有滤过的异常,需要调用ShowException过程。
指定应用程序如何进行异常处理,需要为OnException事件写一个处理程序。由于默认的VCI异常处理程序将自动调用ShowException过程,因此在C++Builder应用程序中,很少需要调用ShowException过程。
TApplication::Tapplication
创建一个新的应用程序。
__fastcall virtual TApplication (Chasses ::TCommponent*AOwner);
应用程序不直接调用TApplication构造函数。每一个C+ + Builder应用程序自动创建一个应用程序对象的实例。对于TApplication对象,Create方法为其一些属性设置默认值。 C+ +Breate方法构造函数还可使应用程序预备运行,例如通过建立提示窗口、应用程序图标、主窗口句柄、HInstance及治理主窗口(窗体)的子窗口的列表等。
TApplication::Terminate
Terminate过程用于结束应用程序的执行。
void __fasteall Terminate ( void ):
Terminate过程调用Windows API 的PostQitMessage函数,以完成应用程序的顺序关闭。Terminate 过程不是即时的。WM—QUIT消息和关闭主窗体,Trminate过程被自动调用。
TApplication::UnhookMainWindow
释放先前通过调用HookMainWindow 方法挂接的对话过程。
void__fastcall UnhookMainWindow (TWindow Hook&Hook);
使用UnhookMainWindow 过程,可以释放挂接的窗口。指定对话过程作为Hook参数的数值。TWindowHook类型中InhookMainWindow方法使用的参数类型。它是一个非Delphi对话框的对话过程使用的方法指针类型。对一个窗口而言,对话过程类似于一个窗口过程,在对话过程中为 对话框处理信息,但它的语法略有不同。
关于Windows挂接的更多信息,参见Windows帮助文件中的SetWindowsEx 函数和UnhookWindowsEx函数。
TApplication::OnActivate
当应用程序变为活动时,OnActivate事件发生。
__proprty classes::TNotifyEvent OnActivate = {read = fOnTctivate, write = TOnactivate } ;
当应用程序被激活时,使用OnActivate事件可以写一个事件处理程序以招执行特定的处理。一个应用程序在下列情况下被子激活;当应用程序开始运行时,或者当焦点从另一Windows应用程序移回到该应用程序的任何窗口时。
TApplication ::OnDeactivate
当一个应用程序变为非活动时,Ondeactivate事件发生。
__property classes ::TNotifyEvent OnDeactivate = {read = FOnDeactivate,Write =FOnDeactivate };
使用在应用程序变为非激活之前立即产生的OnDeavtivate事件,可以指定任何特定的处理。当用户从该应用程序切换到另一Windows 应用程序时,OnDeacativate事件发生。
TApplication ::OnException
在应用程序中出现一个未处理异常时,OnException事件发生。
__ptoperty TExceptionEvent OnException = {read = FOnException,write = ROnException};
使用OnException事件可以修改应用程序中出现一个未处理异常期间的默认行为。在HandleException方法中自动调用OnException事件处理程序。OnException事件只处理在信息处理期间产生的异常。在Application::Run执行之前或之后产生的异常。不能产生OnException事件。
假如一个异常通过了应用程序代码中的try 块,则应用程序自动调用HandleException方法,除非异常对象为EAbort。否则HandleWxception方法调用存在的OnException事件处理程序。假如OnWxception事件处理程序不存在,HandeException方法则调用TException以显示一个指示产生错误的消息对话框。TExceptionEvent类型是OnException事件的类型,它指向应用程序中处理异常的一个方法。Sender参数为引发异常有对象,E参数为异常对象。
TApplication::OaHelp
当应用程序收到一个帮助的请求时,OnHelp事件发生。
__Property Classes::THelpevent OnHelp ={read=FOnHelp,write=FOnHelp};
使用OnHelp事件,可以写一个被请求帮助时执行特定处理的事件处理程序。HelpContext方法自动引发OnHelp事件。将CallHelp参数设为True,可以使VCL在出现请求帮助事件时调用WinHelp。将CallHelp参数设为False,可避免VCL调用WinHelp。
所有应用程序帮助方法都经过OnHelp事件。只在OnHelp事件的CallHelp参数返回True或者OnHelp事件没有被设定时,才调用WinHelp。为得到Command参数和DataCD数据数值,应在Win32开发参考帮助文件(Win32.HLP)中查找。这个帮助文件点明的WinHelp API(应用程序设计接口)。Data参数的数值视Command 参数的数值情况而定。若函数运行成功,则返回True否则返回False。
TApplication::OnHint
当鼠标光标移到一个能够显示帮助提示的控件或菜单选项上时,OnHint事件发生。
__property Classes::TNotifyEvent OnHint = {read=FOnHint,write=FOnHint};
使用OnHint事件,可以写一个产生OnHint事件时执行特定处理的事件处理程序。当用户鼠标光标位于Hint属性数值为一个非空字符串("")的控件上时,OnHint事件发生。
OnHint事件的通常用法是,像显示面板控件(TStatusBar)的标题一样,显示控件或菜单选项的Hint属性数值,并籍此像使用状态栏一样使用面板。OnHint事件产生时,Hint属性能够指定一个帮助提示以及一个出现在别处的常用提示。
TApplication::OnIdle
当应用程序变为空闲时,OnIdle事件发生。
__property TIdleEvent OnIdle = {read=FOnIdle,write=FOnIdle};
使用OnIdle事件,可以写一个应用程序空闲时执行特定处理的事件处理程序。当应用程序不处理代码时,称为应用程序空闲。例如,当应用程序等待来自用户的输入时,应用程序为空闲。
TIdleEvent类型是OnIdle事件的类型,它指向一个应用程序空闲时运行的方法。TIdleEvent类型有一个布尔型参数Done,默认时该参数为True。若参数Done为True,当OnIdle事件返回时,调用Windows API WaitMessage函数。只有在应用程序消息队列中出现一个新消息时,WaitMessage函数才放弃对其他应用程序的控制。参数Done为False时,即使应用程序不忙,也不放弃对其他应用程序的控制。
当应用程序转移到空闲状态时,只调用一次OnIdle事件。除非参数Done设置为False,否则不连续调用OnIdle事件。将参数Done设置为False的应用程序,将消耗过多的CPU时间,从而影响整个系统性能。
TApplication::OnMessage
当应用程序收到Windows消息时,OnMessage事件发生。
typedef void__fastcall (__closure * TMessageEvent)(tagMSG &Msg, bool &Handled);
__property TMessageEvent OnMessage ={read=FOnMessage,write=FOnMessage};
使用OnMessage事件,可以捕捉任何或所有告知应用程序中所有窗口的Windows消息。当应用程序收到一个Windows消息时,产生OnMessage事件。在应用程序中,一个OnMessage事件处理程序的创建,可答应其他处理程序而不是那些为TApplication对象在事件中声明的处理程序的响应消息。假如应用程序没有一个针对输入消息的特定处理程序,则消息将被发送到它所期望的窗口且Windows处理消息。
TmessageEvent类型是OnMessage事件的类型,它指向一个对输入的Windows消息进行处理的方法。Msg参数用于识别Windows消息,Handled参数确定是否对消息进行处理。假如已完成对消息的处理,则Handled参数被设为True以避免正常的消息的处理。
注重:OnMessage事件只接收向消息队列告知的消息而不是那些用Windows API的SendMessage函数直接发送的消息,每秒钟将有成千上万的消息流经OnMessage事件。由于OnMessage事件处理程序能够影响整个应用程序的执行。因此,编写事件处理程序代码时要小心。
TApplication::OnNinimize
当应用程序被最小化时OnMinimize事件发生。
__property Classes::TNotifyEventOnMinimize= {read = FOnMinimize, write = FOnMinimize};
使用OnMinimize 事件,可以写一个应用程序被最小化时执行特定处理的事件处理程序。应用程序被最小化,或是因为用户最小化了主窗口,或是因为调用了Minimize方法。Icon属性确定代表最小化有应用程序的图标。
TApplication ::OnRestore
当先前被最小化的应用程序恢复到正常大小时,OnRestore事件发生。
__property Classes :: TNotifyEvent OnRestore = {read = FOnRestore, write = FOnRestore };
使用onrestore事件,可以写一个应用程序从以一个图标出现的最小化状态被恢复时执行特定处理的事件处理程序。应用程序被恢复,或是因为用户恢复应用程序,或是因为应用程序调用了Restore方法。不要将恢复一个应用程序与恢复一个窗体或窗口至原始大小相混淆。对一个窗体或窗口的最小化、最大化或恢复,将改变WindowState属性的数值。
TApplication::OnShowHint
当应用程序着手为单个控件的帮助提示一个提示窗口时,OnShowHint事件发生。
__property TShowHintEvert OnShow Hint ={read =FOnShowHInt,write =FOnShowHint};
使用OnShowHint事件,可以写一个修改帮助提示的外观和行为的事件处理程序.TShowHinrEvent类型是OnShowHint 事件的类型,它指向一个为控件显示帮助提示的方法。HintStr参数设置帮助提示的文本。若要获取单个控件的提示文本,应调用GetLongHit函数或GetShoretHint函数并将结果赋值给HintStr参数。若要修改文本,只需修改该字符串的内容即可。
使用CanShow变量参数,可以答应阻止帮助提示的显示。假如CanShow变量参数为True,显示帮助提示CanShow变量参数为False,则不显示帮助提示。HintInfo参数是一个记录,它包含了关于帮助窗口的外观和行为的信息。
Tags:TApplication
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接