Delphi项目的框架类:TForm 类实例|详解|技巧
Delphi项目的框架类
大多数Delphi 7 的应用程序至少有一个TForm 的实例。Delphi 7 VCL 应用程序也只能有一个TApplication 的实例和一个TScreen 的实例。TForm、TApplication、TScreen 3 个类在Delphi 7 中起着举足轻重的作用。掌握了这些知识后就可以根据需要修改它们的默认功能。
TForm 类
TForm 类(即窗体类)是Delphi 7 应用程序的焦点。大多数情况下,整个应用程序都是围绕窗体操作的。从主窗体中可以打开其他窗体,通常要通过菜单命令或按钮。可以自动创建窗体,也可以选择在运行期间动态创建窗体。
注意:Delphi 可以创建不使用窗体的程序(例如控制台程序、服务和COM 服务器),在这种情况下,TForm 就不再是应用程序的焦点。
显示给用户的窗体有两种:有模式的和无模式的。具体使用哪一种窗体,取决于用户是否希望能够同时用这个窗体和其他窗体交互。
1.显示一个模式窗体
当打开一个模式窗体后,用户无法与应用程序的其他部分交互,直到用户关闭了这个窗体。模式窗体通常是对话框,就像Delphi 7 本身自带的对话框一样。事实上,大多数情况下应当使用模式窗体。
要显示一个模式窗体,只要调用ShowModal 就可以了。下面的代码演示了如何创建TModalForm,并把它作为模式窗体打开。
var
ModalForm:TModalForm;
begin
//创建TModalForm 的实例
ModalForm:=TModalForm.Create(Application);
try
if ModalForm.ShowModal=mrOk then //显示这个窗体
{执行一些代码}
finally
ModalForm.Free;
ModalForm:=nil;
end;
end;
上面的代码演示了如何动态地创建TModalForm 以及把实例赋值给ModalForm 变量。
注意:如果需要动态创建一个窗体的实例,就要把这个窗体从“Project Options”对话框中的“Auto-Create forms”框中去掉。
如果窗体的实例已经存在,可以调用ShowModal 函数打开它,其他代码可以删掉,缩减代码如下:
begin
if ModalForm.ShowModal = mrOk then //如果ModalForm 已经存在
{执行一些代码}
end;
ShowModal 函数的返回值是ModalForm 的ModalResult 属性值。默认情况下,ModalResult 属性的值为0,相当于预定义的常量mrNone。如果ModalResult 属性被赋值为其他非零值,则窗体将关闭。
可以在运行时对窗体的ModalResult 属性进行赋值,代码如下:
begin
ModalForm.ModalResult := 100;
end;
表3-1 所示为预定义的ModalResult 值。
常量 值
mrNone 0
mrOk idOk
mrCancel idCancel
mrAbort idAbort
mrRetry idRetry
mrIgnore idIgnore
mrYes idYes
mrNo idNo
mrAll mrNo+1