第一章-Delphi入门(五)(3)

1.5.1.1 创建一个含有About框的例程 

作为例子,我们先创建一个含主窗体和简单的About框的应用程序:

在Delphi中创建一个新工程,并为空窗口增加一个Button部件。我们把它作为主窗体,目的是当按动按钮部件时,调出About窗口。下面我们直接进行About窗口的创制。

选用主菜单的File New项,在New页中,选用Form样板,Delphi会自动创建一个空窗体Form2。您可以在其上进行About框的设计,例如加入标签以显示各种信息、加入图片帮助说明等。将Form2的BorderStyle属性设置为bsDialog,则窗口成为运行时不能改变大小的对话框。

下面编程实现主窗体对About框的显示控制。很可能在设计时,两个窗体出现重叠,Form1被About遮住。用Shift+F12产生View Form对话框,可以选择窗口的名字,调出所需的窗体Form1,双击其上的按钮部件,在事件处理过程加入以下的程序: 

procedure TForm1.Button1Click(Sender: TObject);

begin

Form2.Show;

end; 

由于Form1窗体调用About窗体,所以必须在Form1的库单元程序中对引用About进行说明。在Unit1的Uses后面加入About的库单元名Unit2。运行程序,在主窗体上按动按钮,可以出现About框。在框外单击鼠标,会回到主窗体中。

在About窗体中加入一个按钮,并将按钮的ModalResult属性设置为mrOK,同时将按钮的标签的Caption改为OK。这样一个有模式的About框已经建成了。将窗体Form1中Button1的OnClick处理过程的代码改变如下: 

Form2.ShowModal;

再运行程序,除了与上述功能相同显示About对话框外,该程序只有当用户按动About框的按钮或被About窗控制图标关闭窗口后,才会回到主窗体中,而不能与第一个窗体发生交互行为。这就是方法Show和ShowModal的主要不同之处。 

1.5.1.2 指定自动创建窗体 

上面我们简单地生成了一个含About框的双窗体应用程序,运行时,应用程序启动时将自动创建第二个窗体。窗体保持隐蔽状态,但仍然占用Windows的资源。在大型应用程序中,有时不希望在应用程序加载时自动创建所有窗体。Delphi可以指定哪些窗体被自动创建。

选用Project Options,Delphi显示Project options对话框。如果Forms不是当前页,按动下标签使之可见。如图1.12所示:

图示为Delphi装载的TextEdit例程(...\Delphi 2.0\Demos\doc\TextEdit.dpr)。在MainForm正文框中输入主窗体的名字。当应用程序启动时,主窗体自动打开并获取输入焦点。对MDI应用,主窗体的FormStyle属性必须设置为fsMDIForm。在Auto-created Forms列表框中列出了在启动时自动创建的窗体,缺省时工程文件的所有窗体都在此列中。

如果不需要自动创建窗体,使用箭头按钮把窗体移动到Available Forms列表框中。自动创建的窗体可以用Show方法进行显示,而不自动创建时,必须编程实现窗体的显示。在TextEdit工程中,定义一个TEditForm类型的变量EditForm,使用了以下的代码显示第二个窗体:

Begin

EditForm := TeditForm.Create(Self);

EditForm.Open(OpenFileDialog.Filename);

EditForm.Visible := True;

End;

也即,必须使用Create方法创建窗体,同时将窗体的Visible属性设为真。

时间: 2024-08-03 01:20:00

第一章-Delphi入门(五)(3)的相关文章

第一章-Delphi入门(五)(6)

1.5.4 使用工程样板和应用专家 Delphi的工程样板提供预先设计的工程来作为应用程序开发的起点.而应用专家则允许用户按照一定的模式来创建一个应用程序. 1.5.4.1 使用工程样板 当您通过一个工程样板来开始一个工程时,除了空白工程样板外,都会被要求指定一个唯一的子目录即工程目录Project Directory,用来存储新的工程.如果您指定一个不存在的目录,Delphi会帮助您生成它.您可以通过加入新的窗体和程序库单元来修改它,或不加修改地直接利用,而只是加入您的事件处理过程.无论您如何

第一章-Delphi入门(五)(1)

1.4.3.1 调用标准对话框 您可以发现,除了Font,Find,Replace对话框之外,其余标准对话框的Events页都是空白的.因为它们本身是不可视的对话框形式,所以不能响应标准的鼠标键盘操作,只能在程序中调用它们.在本章第一节的Demo程序中,我们已经对用Color对话框有了了解,在程序的适当位置加入对话框所属的Execute方法,可以执行标准对话框. 在编制应用程序时,您可以先设计好主菜单.在需要使用标准对话框的菜单项的事件处理过程中,调用标准对话框的Execute等方法,以满足设计

第一章-Delphi入门(五)(5)

1.5.3 使用窗体样板和对话框专家 在前文的例程中,我们创建了一个简单的About框.在很多应用程序中,都会用到这种进行信息提示或表示版本信息的对话框.Delphi的设计思想是软件可重用,所以系统phi已经载入了一些用户可重复应用的窗体样板.使用窗体样板,可以简单地生成各种对话框,节省了大量的重复工作. 1.5.3.1 使用窗体样板创建窗体 创建一个新工程时,Delphi为用户创建了一个新的空窗体.如果需要使用一个窗体样板,向工程中增加一个窗体.选用File New,Delphi即会显示New

第一章-Delphi入门(五)(4)

1.5.2 使用工程管理器Project Manager 当窗体的数目逐步增加时,跟踪窗体以及与之相连的库单元代码就变得比较烦琐.用Delphi提供的工程管理器Project Manager可以使得管理各种窗口更为方便. 1.5.2.1 工程文件的组成 工程(project)是整个应用程序的源文件集合,这样的文件一共有三种: 1.一个包含主程序部分的工程文件,用以驱动由Delphi创建的Windows程序,扩展名为.DPR.这是在用户的工程被装载时就运行的全局应用程序文件,它的名字出现在Proj

第一章-Delphi入门(五)(2)

1.4.3.4 PrintDialog和PrintSetupDiaog 打印对话框PrintDialog和打印设置对话框PrintSetupDialog可以显示标准打印.打印设置对话框,支持打印文件和打印设置功能,设置它的Options属性可以规定对话框的表现形式 1.4.3.5 FindDialog和ReplaceDialog FindDialog和ReplaceDialog提供了查找.替换两个对话框部件,对于寻找和替换文本是极其有用的.在FindDialog和ReplaceDialog中都有

第一章-Delphi入门(一)(2)

一些早期的具有OOP性能的程序语言如C++,Pascal,Smalltalk等,虽然具有面向对象的特征,但不能轻松地画出可视化对象,与用户交互能力较差,程序员仍然要编写大量的代码.Delphi的推出,填补了这项空白.您不必自己建立对象,只要在提供的程序框架中加入完成功能的代码,其余的都交给Delphi去做.欲生成漂亮的界面和结构良好的程序丝毫不必绞尽脑汁,Delphi将帮助您轻松地完成.它允许在一个具有真正OOP扩展的可视化编程环境中,使用它的Object Pascal语言.这种革命性的组合,使

第一章-Delphi入门(三)(3)

1.3 Delphi 2.0的可视化部件用法简介 本节中,我们将较为深入地讲解Delphi的部件.这是编制大型复杂应用程序的必由之路.下面,我们将对各种部件分类进行简单的介绍,以便于您在编程时能够较快地了解有哪些部件可能会满足您的要求,并对其重要的方法.属性等有一个大致的了解. 基本技巧.工具的介绍在本章的第4节中,交互阅读这两部分,多创制几个试验程序,有助于您迅速进入Delphi世界,尽早将这一精妙软件用于实际工作中. 1.3.1 常用的文本相关部件 以下的部件以各种格式显示文本,其中有些是文

第一章-Delphi入门(三)(2)

1.2.5.1 为用户操作建立"事件" 单击窗体上的"Rectangle"按钮,在Object Inspector中,点动"Events"页标签,出现事件窗口.在本例程中,我们只关心OnClick事件,即按钮接收到左键单击时应用程序所作出的反应.在Object Inspector窗口中双击OnClick事件右端的值段,会使得Delphi激活库代码编辑器,并将光标停在该按钮所对应的过程的begin...end之间."Rectangle&q

第一章-Delphi入门(四)(4)

1.4.1.1 进入菜单设计器Menu Designer 创建菜单时,首先要在窗体中放置一个菜单对象.然后调入Menu Designer进行菜单的详细设定.用两种方式可以进入Menu Designer:选中菜单部件,点动属性中Items省略按钮:或在菜单部件上双击左键,就会出现Menu Designer. 1.4.1.2 创建菜单的各个项目 进入Menu Designer,会发现在菜单的第一项位置上有加亮显示.输入顶层菜单项(实际上是在设定顶层菜单项的Caption属性)并回车.一项菜单条设置完