📄 c++ builder 程序设计实用教程 - 3_1_2 标准对话框控件的应用 - 张晋 - 17xie.htm
字号:
208<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US style="FONT-FAMILY: 'Times New Roman'"><SPAN
style="mso-spacerun: yes"> </SPAN>Top =
56<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US style="FONT-FAMILY: 'Times New Roman'"><SPAN
style="mso-spacerun: yes"> </SPAN>end<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">end<o:p></o:p></SPAN></P>
<H4><SPAN lang=EN-US>2</SPAN><SPAN
style="FONT-FAMILY: 楷体_GB2312; mso-ascii-font-family: 'Times New Roman'">.程序的初始化</SPAN></H4>
<P class=MsoNormalIndent><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">程序的初始化过程,也就是对窗体</SPAN><SPAN
lang=EN-US>FormCreate()</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">事件的初始化。</SPAN></P>
<P class=MsoNormalIndent><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在程序设计阶段,用鼠标的左键双击窗体上的空白处,在屏幕上就会弹出一个代码窗口,把光标移动到</SPAN><SPAN
lang=EN-US>FormCreate()</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">事件的过程处理代码中,并且添加如下所示代码:</SPAN></P>
<P class=a3><SPAN lang=EN-US style="FONT-FAMILY: 'Times New Roman'">void
__fastcall TForm1::FormCreate(TObject *Sender)<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">{<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">Form1->Memo1->Clear();<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">清空文本框</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">Form1->OpenDialog1->Title="</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">请选择一个文本文件:</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: 'Times New Roman'">";<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置对话框标题</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">Form1->OpenDialog1->InitialDir="c:\\Windows";<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置缺省文件目录</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">Form1->OpenDialog1->Filter="All
Files(*.*)|*.*|Text Files(*.txt)|*.txt";<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置文件过滤条件</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">Form1->OpenDialog1->DefaultExt=String("TXT");<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置缺省扩展名</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">Form1->SaveDialog1->Title="</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">请选择一个文本文件:</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: 'Times New Roman'">";<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置对话框标题</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">Form1->SaveDialog1->InitialDir="c:\\Windows";<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置缺省文件目录</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">Form1->SaveDialog1->Filter="All
Files(*.*)|*.*|Text Files(*.txt)|*.txt";<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置文件过滤条件</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">Form1->SaveDialog1->DefaultExt=String("TXT");<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置缺省扩展名</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">Form1->Button2->Enabled=false;<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设置按钮有效状态</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">Form1->FontDialog1->Font=Form1->Memo1->Font;<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">Form1->ColorDialog1->Color=Form1->Memo1->Color;<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对话框的初始化</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: 'Times New Roman'"><o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">}<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">//-----------------------------------------------------------------------<o:p></o:p></SPAN></P>
<P class=MsoNormalIndent><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">程序说明:</SPAN></P>
<P class=MsoNormalIndent><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在程序运行的初期,程序首先清空文本框中的文本显示内容,这为用户输入文字和打开文件作好了准备工作,由于程序刚刚开始运行时,还没有打开文件,所以“存储文件”按钮应该处于无效的状态,这是通过语句</SPAN><SPAN
lang=EN-US>Form1->Button2->Enabled=false;</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来实现的。</SPAN></P>
<P class=MsoNormalIndent><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在程序的初始化过程中,还包括对</SPAN><SPAN
lang=EN-US>OpenDialog</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件的初始化,通过语句一条</SPAN><SPAN
lang=EN-US>Form1->OpenDialog1->InitialDir:='c:\\windows';</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来设置组件所显示对话框的缺省路径为</SPAN><SPAN
lang=EN-US>c:\windows</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,同时设置的文件显示过滤器为</SPAN><SPAN
lang=EN-US>'All Files(*.*)|*.*|Text Files(*.txt)|*.txt'</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,这也就意味着,在程序运行的过程中,“打开”对话框显示的文件只有两种选择——要么显示所有的文件,要么只显示以</SPAN><SPAN
lang=EN-US>*.txt</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为后缀的文本文件。与</SPAN><SPAN
lang=EN-US>OpenDialog</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件的初始化相同,</SPAN><SPAN
lang=EN-US>SaveDialog</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件的初始化过程也是由两条语句:</SPAN></P>
<P class=MsoNormalIndent><SPAN
lang=EN-US>form1->SaveDialog1->InitialDir:='c:\\windows';</SPAN></P>
<P class=MsoNormalIndent><SPAN lang=EN-US>form1->SaveDialog1->Filter:='All
Files(*.*)|*.*|Text Files(*.txt)|*.txt';</SPAN></P>
<P class=MsoNormalIndent><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">它们的功能在</SPAN><SPAN
lang=EN-US>OpenDialog</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件的初始化过程中已经讲述过了。</SPAN></P>
<P class=MsoNormalIndent><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在窗体</SPAN><SPAN
lang=EN-US>FormCreate()</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">事件的最后通过两条语句</SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">Form1->FontDialog1->Font=Form1->Memo1->Font;<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">Form1->ColorDialog1->Color=Form1->Memo1->Color;<o:p></o:p></SPAN></P>
<P class=MsoNormalIndent><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">完成对“字体”对话框和“颜色”对话框的初始化,把它们的初始状态设置与</SPAN><SPAN
lang=EN-US>Memo</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件相一致。</SPAN></P>
<P class=MsoNormalIndent><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">至此,程序的初始化工作就完成了。</SPAN></P>
<H4><SPAN lang=EN-US>3</SPAN><SPAN
style="FONT-FAMILY: 楷体_GB2312; mso-ascii-font-family: 'Times New Roman'">.响应“打开文件”按钮</SPAN></H4>
<P class=MsoNormalIndent><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在程序的设计阶段,用鼠标的左键双击窗体上的“打开文件”按钮,在弹出的如图</SPAN><SPAN
lang=EN-US>3-7</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所示代码窗口的左侧子窗口中选择</SPAN><SPAN
lang=EN-US>Tform1/Published/Button1Click</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">选项,在代码窗口的右侧子窗口中就会显示出组件“打开文件”的代码响应过程。</SPAN></P>
<P class=a><SPAN lang=EN-US><IMG height=205
src="C++ Builder 程序设计实用教程 - 3_1_2 标准对话框控件的应用 - 张晋 - 17xie.files/680e07fbee.jpg"
width=295 v:shapes="_x0000_i1026"></SPAN></P>
<P class=MsoCaption><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">图</SPAN><SPAN
lang=EN-US>3-7<SPAN style="mso-spacerun: yes"> </SPAN></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">弹出的代码窗口</SPAN></P>
<P class=MsoNormalIndent><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在其中添加如下所示的按钮响应代码:</SPAN></P>
<P class=a3><SPAN lang=EN-US style="FONT-FAMILY: 'Times New Roman'">void
__fastcall TForm1::Button1Click(TObject *Sender)<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">{<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US style="FONT-FAMILY: 'Times New Roman'">if
(Form1->OpenDialog1->Execute())<o:p></o:p></SPAN></P>
<P class=a3><SPAN lang=EN-US style="FONT-FAMILY: 'Times New Roman'"><SPAN
style="mso-spacerun: yes"> </SPAN>//</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">打开一个对话框</SPAN><SPAN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -