论坛
门户
内部优惠
喜欢
话题
VIP会员
搜索
新浪微博
登录
注册
100%
100%
首页
>
软件开发
>
delphi语言
>
第一章 Delphi快速入门(五)
回复
« 返回列表
灯火互联
管理员
注册日期
2011-07-27
发帖数
41778
QQ
火币
41290枚
粉丝
1086
关注
100
加关注
写私信
打招呼
阅读:
4338
回复:
0
[系统教程]
第一章 Delphi快速入门(五)
楼主
#
更多
只看楼主
倒序阅读
发布于:2011-10-11 20:16
保存
100%
100%
[]
1
1.4.3.1
调用标准对话框
您可以发现,除了
Font,Find,Replace
对话框之外,其余标准对话框的
Events
页都是空白的。因为它们本身是不可视的对话框形式,所以不能响应标准的鼠标键盘操作,只能在程序中调用它们。在本章第一节的
Demo
程序中,我们已经对用
Color
对话框有了了解,在程序的适当位置加入对话框所属的
Execute
方法,可以执行标准对话框。
在编制应用程序时,您可以先设计好主菜单。在需要使用标准对话框的菜单项的事件处理过程中,调用标准对话框的
Execute
等方法,以满足设计需求,即响应菜单命令弹出标准对话框。
1.4.3.2 OpenDialog
和
SaveDialog
部件
OpenDialog(
文件的打开
)
和
SaveDialog(
保存对话框
)
部件处理文件的打开与存储,它们拥有完全相同的属性域。
DefaultExt
属性表示缺省扩展名。当用户没有输入文件的后缀时,可以为用户文件自动加扩展名。
FileName
属性指定出现在
FileName
正文框中的缺省文件名。
Filter
属性提供了文件过滤器。
FileEditStyle
决定在输入文件名时用
Edit
还是
Combo- Box
;设置为
fsComboBox
时,允许使用历史列表
HistoryList
属性,这在应用程序需要经常选择文件时,可以节约大量的时间。
HistoryList
属性保存有在
File Name
下拉式编辑框中显示的文件名,使用
[TStrings]
的省略按钮可以编辑历史列表。您也可以编程实现将
HistoryList
属性设为以前用
OpenDialog
打开的文件名历史列表。下列程序段可以实现自动历史文件名加载:
if OpenDialog1.Execute then
OpenDialog1.HistoryList.Insert(0,OpenDialog1.FileName);
1.4.3.3 ColorDialog
和
FontDialog
颜色对话框
ColorDialog
我们在前文的例程中已经用过,其更详细的功能如
Options
的设定请查阅在线帮助。
字体对话框
Font
可以帮助用户获取各种方式的字体。使用
OnApply
事件,可以使得
Font
对话框中包含一个
Apply
按钮,按动它,对话框中设定的字体会立即应用到指定的对象中,而对话框仍然是打开的,这样更便于观察修改的结果。
以下的例程在窗体中先放置一个按钮
Button1
,调用字体对话框来改变按钮上的
Caption
属性显示的字体:
Procedure TForm1.Button1Click(Sender:TObject);
begin
FontDialog1.Execute;
end;
Procedure TForm1.FontDlgApply(Sender:Tobject);
begin
Button1.Font:= FontDialog1.Font;
end;
1.4.3.4 PrintDialog
和
PrintSetupDiaog
打印对话框
PrintDialog
和打印设置对话框
PrintSetupDialog
可以显示标准打印、打印设置对话框,支持打印文件和打印设置功能,设置它的
Options
属性可以规定对话框的表现形式
1.4.3.5 FindDialog
和
ReplaceDialog
FindDialog
和
ReplaceDialog
提供了查找、替换两个对话框部件,对于寻找和替换文本是极其有用的。在
FindDialog
和
ReplaceDialog
中都有
OnFind
事件,当用户单击寻找对话框中的
Find Next
按钮时将触发这一事件。
FindText
属性中保存了用户在
Find What
编辑框中输入的文本。在
ReplaceDialog
中还有
OnReplace
事件,当用户单击替换对话框中的
Replace
和
Replace All
按钮时,将触发
OnReplace
事件。
FindText
和
ReplaceText
属性分别保存了用户在
Find What
和
Replace With
编辑框中输入的文本。
1.5
使用
Delphi
的工程管理、设计工具
Delphi 2.0
是完备的工程设计系统,除提供了大量的可视化编程部件和简单方便的设计方法外,还备有功能强大的工程管理、窗口设计工具。
1.5.1
创建多窗体工程项目
绝大多数的应用程序都用到不只一个窗口,
Delphi
允许用户创建多文档界面
(MDI)
应用程序。应用自动创建窗体、窗体样板、对话框专家、应用专家等,可以使得创建应用程序更为方便快捷,而且可重复利用,大大地降低了工作量。
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.0DemosdocTextEdit.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
属性设为真。
1.5.2
使用工程管理器
Project Manager
当窗体的数目逐步增加时,跟踪窗体以及与之相连的库单元代码就变得比较烦琐。用
Delphi
提供的工程管理器
Project Manager
可以使得管理各种窗口更为方便。
1.5.2.1 工程文件的组成
工程
(project)
是整个应用程序的源文件集合,这样的文件一共有三种:
1.
一个包含主程序部分的工程文件,用以驱动由
Delphi
创建的
Windows
程序,扩展名为
.DPR
。这是在用户的工程被装载时就运行的全局应用程序文件,它的名字出现在
Project Manager
的标题条上。工程文件一般是
Delphi
自动创建的,用
View|Project Source
可以调出该工程的源文件,如果需要,可以对工程源文件进行编辑。
2.
一个或多个窗体文件,它们含有相应的库单元文件。窗体文件的扩展名是
.DFM
。这些文件含装在窗体上的控制部件。在
Delphi
中这样的文件是在用户设计界面的时候由
Delphi
自动生成的,而且不能编辑。在
Delphi
中,一个应用程序至少需要一个窗体。
3. Object Pascal
库库单元文件。
它们的扩展名为
.PAS
。窗体的库单元文件包含了程序部分,用以控制窗体的行为。在一个工程中,还要包含附加库和被应用程序其它部分调用的支持子程序。
uses
子句中包含的标准库单元文件包含了支持可视窗体及其控制的对象声明。这些库单元也包含了用于激活窗体的事件处理过程程序。
1.5.2.2
使用
Project Manager
进行工程管理
选用
View|Project Manager
,会调出
Project Manager
窗口。
Project Manager
主体部分列出了库单元以及相关联的窗体的路径,当库单元和工程在同一目录下时,路径不再显示。
Project Manager
包含了应用程序的所有源文件和窗口。并不是每一个库单元都拥有一个相关联的窗体。
Project Manager
可以作为工程的一个简捷目录。在列出的任何一个窗体或库单元上双击鼠标左键,
Delphi
就会产生此对象的代码编辑器。
Project Manager
窗口上有增加、删除对象以及查看对象的加速按钮。
Options
加速键能够打开前文所述的
Project Options
对话框。如果在
Project Manager
打开时编辑了工程各文件的源代码,可单击
Update
加速条按钮刷新对象列表。
1.5.3
使用窗体样板和对话框专家
在前文的例程中,我们创建了一个简单的
About
框。在很多应用程序中,都会用到这种进行信息提示或表示版本信息的对话框。
Delphi
的设计思想是
软件
可重用,所以系统
phi
已经载入了一些用户可重复应用的窗体样板。使用窗体样板,可以简单地生成各种对话框,节省了大量的重复工作。
1.5.3.1
使用窗体样板创建窗体
创建一个新工程时,
Delphi
为用户创建了一个新的空窗体。如果需要使用一个窗体样板,向工程中增加一个窗体。选用
File|New
,
Delphi
即会显示
New Items
对话框。在
Forms
页上,从样板库中选择中意的新窗体增加到工程中。例如,
Delphi
提供了
About Box
样板。如果选择它,
About
对话框就增加到工程中,用户只需加入自己的各种信息即可,这样就简化了工作。同样,要建立一个对话框窗口,在
Dialogs
页上,选用所需的对话框样板,可以简便地建立起所需的对话框窗口。
1.5.3.2
存储自己的窗体样板
您可以在样板库中存储自己的窗体样板。首先创制一个窗体的样本,在窗体区域中单击鼠标的右键,可以调出窗体的加速菜单。选用
Add To Repository...
,将弹出对话框。
在
Forms
列表框中,选择想要创建为样板的窗体。在
Title
输入框中输入想要在样本库内图标下出现的文本。在
Description
区,输入关于样板的详细说明。这样在浏览样本库时,在状态行上会显示这段文字以进行提示。可以选择一个图标作为新窗体样板的图标,按动
Browse
按钮,选择一个现有图标来代表新的窗体样板。否则将使用按钮左方的缺省窗体图标。按
OK
按钮,
Delphi
会要求您确认将窗体存储为样板。
再次打开
New Items
对话框,您会发现您的窗体已经被存储成一个窗体样板。
1.5.3.3
使用对话框专家
Dialog Expert
对话框样板呈现了友好界面的被保存对话框,而对话框专家却能根据用户提供的信息,智能地创建复杂的对话框。
选用
File|New...
,在
New|Items
的
Dialog
页选用
Dialogs Expert
,
Delphi
将提示回答各种问题,以便于建立复杂的对话框。
1.5.4
使用工程样板和应用专家
Delphi
的工程样板提供预先设计的工程来作为应用程序开发的起点。而应用专家则允许用户按照一定的模式来创建一个应用程序。
1.5.4.1
使用工程样板
当您通过一个工程样板来开始一个工程时,除了空白工程样板外,都会被要求指定一个唯一的子目录即工程目录
Project Directory
,用来存储新的工程。如果您指定一个不存在的目录,
Delphi
会帮助您生成它。您可以通过加入新的窗体和程序库单元来修改它,或不加修改地直接利用,而只是加入您的事件处理过程。无论您如何修改,您所作的修改只影响到打开的工程,原先的工程样板不会受到影响,可再次被利用。
选用
File|New
,在
New Items
对话框中选用
Projects
页,可以选择将
MDI
、
SDI
、
Windows 95 Logo
等应用程序作为缺省的工程类型,点动所需工程的图标,使之高亮度显示,然后按
OK
按钮。如图
1.17
所示。在接下来的
Select Dictionary
对话框中指定一个用来包含新的工程文件的目录,则一个工程样板的副本在指定的目录中打开。
1.5.4.2
使用应用专家
Application Expert
一个应用专家就是一个应用程序,它会依照您在一系列对话框中所设置的选项值来产生一个工程。
如果您想在打开一个工程时,利用应用专家来取代工程样板而成为缺省值,则使用
File|New
,在
New Items
的
Projects
页上选用
Applcation Expert
。这样,双击它的图标,会弹出一系列对话框提问,要求您选择您的工程是否需要一个标准的
Windows 95
对话框、含有哪些菜单、加速条等。图
1.18
是使用应用专家后出现的第一个对话框。
Delphi
会要求您输入您的工程文件名及它存储的唯一目录,并提示您选择应用程序是否使用
MDI
窗口、是否含有状态行、提示等。选项设置完毕,按动
Finish
按钮,
Application Expert
即按照您的要求,建立起一个可以直接运行的工程文件。
喜欢
0
评分
0
最新喜欢:
淘宝天猫隐藏优惠券地址
回复
100%
发帖
回复
« 返回列表
普通帖
您需要登录后才可以回帖,
登录
或者
注册
100%
返回顶部
关闭
最新喜欢