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的主要不同之处。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器