Delphi快速入门(五)


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子句中包括的 标准库单元文件包括了 支撑可视窗体及其操纵的对象申明 。这些库单元也包括了用于激活窗体的事件 解决过程程序 。