公用对话框在构件板的Dialogs标签中,这些构件不是可视构件,因为没有图形设计接口。下面几节介绍这些公用对话框,但Print和Printer Setup对话框要留到后面介绍打印时再介绍。 8.8.1Execute方法公用对话框的一个共同之处是都有Execute方法,用于生成和显示对话框。Find和Replace对话框是无模态对话框,其余都是模态对话框。用户单击OK按钮、双击文件名(对于文件对话框)或按键盘上的Enter键时,Execute方法返回true。用户单击Cancel按钮、按Esc键或用系统关闭框关闭对话框时,Execute方法返回false。公用对话框通常实现如下:if(OpenDialog>Execute()) { // user pressed OK so use the filenameMemo>Lines>LoadFromFile(OpenDialog>FileName);}return;这个代码显示File Open对话框并向用户请求文件名。假如用户单击OK按钮,则执行if块内的代码,文件装入Memo构件。假如不按OK按钮,则忽略if块内的代码,不发生动作。说明 上例中的代码是C++快捷语法的又一个例子。第一行:if(OpenDialog>Execute()) {等于if(OpenDialog>Execute() == true) {两种方法都可以,但第一种更好。
Options属性Options属性控制使用文件对话框的方法。选项很多,最常见的有是否答应生成新文件或目录、对话框中是否显示Help按钮、是否答应长文件名、是否答应选择多个文件,等等。详见C++ Builder中关于OpenDialog和SaveDialog构件的联机帮助。Title属性Title属性设置或读取文件对话框的标题。不指定标题时,OpenDialog缺省用Open,SaveDialog构件缺省用Save。提示 Save As对话框就是Title属性设置为Save As的SaveDialog构件。文件对话框没有相关联的事件。提示 也可以不放OpenDialog构件到窗体上而在运行时实现File Open对话框或其它公用对话框。为此,生成TOpenDialog类的实例,然后调用Exeate方法:TOpenDialog* openDlg = new TOpenDialog(this);if (openDlg>Execute()) {// do something here}delete openDlg;假如需要,还可以在调用Execute之前设置OpenDialog构件的属性。
File Open Picture和File Save Picture对话框这两个对话框是在File Open和File Save对话框中增加了一个特性,用预览窗口显示当前所选的图形。这些对话框也有Filter属性,预设成常用Windows图形格式,此外,它们与File Open和File Save对话框完全一样。 Color对话框Color对话框可以用于选择颜色。单击OK按钮时,Color属性会包含颜色信息。Color对话框和文件对话框一样,没有要响应的事件。