Delphi课件第4章.ppt

上传人:max****ui 文档编号:6336117 上传时间:2020-02-23 格式:PPT 页数:31 大小:1.12MB
返回 下载 相关 举报
Delphi课件第4章.ppt_第1页
第1页 / 共31页
Delphi课件第4章.ppt_第2页
第2页 / 共31页
Delphi课件第4章.ppt_第3页
第3页 / 共31页
点击查看更多>>
资源描述
第4章对话框和多窗体设计 内容提要 使用Delphi7内建的信息对话框函数Delphi通用对话框多重窗体设计 4 1Delphi7内建的对话框函数 在Delphi7中 提供了几个直接显示内建信息对话框的函数 这些函数分别是ShowMessage ShowMessagePos ShowMessagFmt MessageDlg MessageDlgPos MessageDlg MessageDlgPos MessageDlgPosHelp MessageBox InputBox和InputQuery等 下面就分别介绍这些对话框 4 1 1ShowMessage函数 ShowMessage函数的定义如下 ProcedureShowMessage ConstMsg String 该函数是最简单的信息对话框 它只有一个参数 ShowMessage函数对话框只能显示一个提示信息和一个 OK 按钮 图4 1ShowMessage函数弹出的对话框 4 1 2ShowMessagePos函数 ShowMessagePos函数ShowMessage函数也类似 不过多了一个显示格式参数 通过该函数可以输出一些字符串进行格式化后的值 ShowMessagePos函数定义如下 ProcedureShowMessagePos ConstMsg string X Y Integer 以下程序利用ShowMessagePos函数将消息框定位在 100 100 的坐标上 ShowMessagePos 显示位置在100 100的坐标上 100 100 4 1 3ShowMessageFmt函数 ShowMessageFmt函数用于字符串的格式化输出 ShowMessageFmt函数定义如下 ProcedureShowMessageFmt ConstMsg String Params ArrayOfConst 其中 Msg参数的一般形式为 普通字符 提示字符 格式控制符 ShowMessageFmt函数使用的类型说明符参见P119 表4 1 4 1 4MessageDlg函数 MessageDlg函数可以提供比较丰富的信息 比如显示的消息对话框类型 按钮类型等 还能够得到用户的响应信息 其定义如下 FunctionMessageDlg ConstMsg String DlgType TMsgDlgType Buttons TMsgDlgButtons HelpCtx LongInt Word 其中 Msg 表示对话框的提示信息 DlgType 通过它可以在信息对话框中设置一定的图标来表达不同的意义 比如警告 询问等 其取值如表4 2所示 Bottons 是一个集合类型 它控制在信息对话框中可能出现的按钮名称 其取值如表4 3所示 HelpCtx 用于定义帮助按钮打开的上下文帮助文件的ID 按F1也可打开帮助文件 4 1 5MessageDlgPos函数 MessageDlgPos函数和MessageDlg相似 但此函数多了一个可控制弹出信息框的出现位置的功能 定义如下 FunctionMessageDlg ConstMsg String DlgType TMsgDlgType Buttons TMsgDlgButtons HelpCtx LongInt X Y Integer Word X Y参数表示信息对话框出现的位置 下面给出有关该函数的一个实例 MessageDlgPos 此信息对话框在100 100的位置上 MtInformation mbYes mbNo mbCancel 0 100 100 4 1 6MeaageDlgPosHelp函数 MessageDlgPosHelp函数定义如下 FunctionMessageDlgPosHelp ConstMsg string DlgType TmsgDlgType Buttons TmsgDlgButtons HelpCtx Longint X Y Integer constHelpFileName string Word 其中 Msg DlgType Buttons和HelpCtx参数在MessageDlg函数中已经介绍 X Y表示信息对话框出现的位置 HelpFileName有特殊的含义 它将帮助信息对话框与之相对应的帮助文件建立联系 4 1 7MessageBox函数 MessageBox函数是WindowAPI函数 但可在Delphi7下直接使用 MessageBox函数的定义如下 FunctionMessageBox ConstText PAnsiChar ConstCaption PAnsiChar Flags LongInt MB OK Integer 其中 Text参数是一个长度可以超过255的字符串 它显示在对话框的中部 能自动环绕 Caption参数类型与Text参数相同 它只是作为弹出的信息对话框的标题 也可以超过255个字符 Flags是一个LongInt类型的参数 它可以从0开始取不同的值 使对话框的可选项不同 它包含四个参数 各项参数如表4 4 表4 5 表4 6和表4 7所示 4 1 8InputBox函数 InuptBox函数显示一个带有编辑组件的窗体 提供让用户输入文本的功能 该对话框既有按钮又有文本输入 因而使用更加灵活和广泛 InputBox函数的定义如下 FunctionInputBox constACaption APrompt ADefault string string 其中 ACaption 信息对话框的标题 APrompt 显示在输入框上方的提示信息 Adefault 缺省值 自动显示在输入框中 该函数的返回类型为String类型 图4 2InputBox函数的信息框 4 1 9InputQuery函数 InputQuery函数和InputBox函数很相似 它也是提供输入的一个信息对话框 但该函数却可以通过判断函数的返回值 从而知道用户按下了哪一个按钮 InputQuery函数的定义如下 functionInputQuery constACaption APrompt string varValue string Boolean 其中 ACaption 信息对话框的标题 APrompt 显示在输入框上方的提示信息 Value 是一个字符串类型 String 的变量 该函数的返回类型为布尔类型 Boolean 4 2Delphi通用对话框 本节着重介绍打开对话框 TOpenDialogComponement 保存对话框 TSaveDialogComponement 打开图片对话框 TOpenPictureDialogComponement 保存图片对话框 TSavePictureDialogComponement 字体对话框 TFontDialogComponement 颜色对话框 TColorDialogComponement 查找对话框 TFindDialogComponement 替换对话框 TReplaceDialogComponement 打印对话框 TPrintDialogComponement 和打印设置对话框 TPrinterSetupDialogComponement 4 2 1TOpenDialog和TSaveDialog组件 用户可通过打开对话框选择要打开的文件 通过保存对话框设定要存储的文件名称 含路径 并将所编辑或输入的数据存入磁盘 使用Execute方法来激活打开对话框和保存对话框 例子如下 procedureTForm1 Button1Click Sender TObject beginifOpenDialog1 ExecutethenBeginShowMessage 已经打开文件了 End end 4 2 1TOpenDialog和TSaveDialog组件 procedureTForm1 Button2Click Sender TObject beginifSaveDialog1 ExecutethenBeginShowMessage 已经保存了文件 End end 对于TOpenDialogComponement和TSaveDialogComponement有一些常用的属性 介绍如下 1 InitiaDir属性 该属性决定打开相应对话框时的当前路径 如果没有设置该属性 或者设置的路径不存在 则打开对话框时的路径为当前的工作目录 2 Defaultext属性 该属性表示默认的文件扩展后缀 当用户没有输入文件的后缀时 可以为用户文件自动添加后缀 4 2 1TOpenDialog和TSaveDialog组件 3 FileName属性 是用户选择或者输入的文件名称 它可返回最近一次选择的文件的名称和完整目录路径 4 Filter属性 该属性提供了文件过滤器 5 FilterIndex属性 该属性可预先设置对话框打开时所使用的过滤器 6 Title属性 该属性可以在程序中改变对话框的标题条中的内容 默认情况下 打开对话框 OpenDialog 的标题为 打开 保存对话框 SaveDialog 的标题为 另存为 7 Options属性 该属性决定对话框的显示和行为方式 它是集合类型 包含很多对话框的细节设置 其取值及含义如表4 9所示 4 2 2TOpenPictureDialog组件和TSavePictureDialog组件 TOpenPictureDialog TSavePictureDialog是打开 保存图片文件的对话框组件 这两个对话框的Filter属性已自动定义好 对常用的图片格式都作了定义 用户也可自己定制 应用程序通过TOpenPictureDialog和TSavePictureDialog组件的Execute方法来显示相应的对话框 如图4 7和图4 8所示 有关这两个组件的属性参考TOpenDialog和TSaveDialog组件一节中的属性介绍 基本一致 举例 TopenPictureDialog和TSavePictureDialog组件的使用方法 首先创建一个工程文件 在默认Form1窗体上添加Image控件 并把其Align属性的值设为alTop 在窗体上添加TOpenPictureDialog和TSavePictureDialog组件 再添加上三个Button按钮 分别设置它们的Caption属性值为 载入图片 保存图片 和 退出程序 其完成后的窗体界面如图4 9所示 图4 9载入或保存图片窗体界面 4 2 3TFontDialog和TColorDialog 可以使用Execute方法来显示字体对话框组件 TFontDialogComponement 当用户选择了字体 大小 样式等属性 单击 确定 按钮后就会将这些字体设定保存到Font属性中 TcolorDialog组件最重要的属性是Color属性 当用户选择了一种颜色并单击 确定 按钮时 选中的颜色将被保存在组件的Color属性中 两个对话框应用举例 首先新建一个工程 在窗体上添加一个标签 并设置它的Caption属性为 改变我的字体和颜色 添加一个Shape组件 同时添加FontDialog和ColorDialog组件 最后添加三个Button按钮 并设置它们的Caption属性分别为 字体 颜色 和 关闭 界面如图4 14所示 图4 14字体和颜色对话框使用例子界面 procedureTForm1 Button1Click Sender TObject beginifFontDialog1 Executethenlabel1 Font FontDialog1 Font end procedureTForm1 Button2Click Sender TObject beginifColorDialog1 ExecutethenShape1 Brush Color ColorDialog1 Color end procedureTForm1 FormCreate Sender TObject beginShape1 Shape stEllipse end 程序代码 4 2 4TFindDialogComponement和TReplaceDialogComponement FindDialog组件为应用程序提供查找对话框 ReplaceDialog对话框组件是从FindDialog派生的 是FindDialog组件的扩展版本 它既能够让用户查找 也能让用户替换字符串 两个对话框组件也是用Execute方法打开 4 2 5TPrintDialog和TPrinterSetupDialog TPrintDialog组件通过调用Execute方法显示一个标准的Windows打印对话框 如图4 18所示 在对话框中 用户可以选择打印机 打印页数和打印份数等 有关TPrintDialog组件的属性介绍如下 1 Copies属性 该属性决定打印的份数 2 MaxPage属性 该属性限制打印的最大页数 3 MinPage属性 该属性限制打印的最小页数 4 PrintRange属性 该属性决定选择打印范围的方式 5 FromPage属性 当PrintRange属性取prPageNums值时 该属性确定打印的起始页码 6 ToPage属性 当PrintRange属性取prPageNums值时 该属性确定打印的终止页码 7 Collate属性 决定在打印多份文件时 是否进行相互校对 8 PrintToFile属性 该属性决定是否将内容打印到一个文件中 9 Options属性 该属性决定打印对话框的显示形式 该属性是集合类型 其取值及相应含义如表4 13所示 在Delphi中 文件打印有两种方式 一种方式是将文件变量分配给打印机 用此变量名创建或打开文件后 往此文件变量写入的任何文本都视为向打印机输出 另一种方式是利用Printers单元中定义的TPrinter对象进行文件打印 TPrinter对象可调用Windows的打印机 在Printer单元中定义了TPrinter的实例Printer 用户可直接使用 调用TPrinter的BeginDoc方法可开始一项打印工作 调用EndDoc方法可结束一项已成功发送给打印机的工作 如果在发送过程中出现问题或用户想中途终止打印工作 可调用Abort方法 有关TPrinter对象的属性介绍如下 1 Aborted属性 如果用户中断打印工作 则该属性返回真 True 值 2 Canvas属性 代表打印表面 通过Canvas属性的Brush Font Pen属性可决定打印字体或图像的特征 3 Printers属性 该属性中包含着已安装的打印机列表 4 PrinterIndex属性 该属性是当前选择的打印机在打印机列表中的序号 5 Fonts属性 该属性中有当前打印机支持的字体 6 Orientertion属性 该属性可决定打印方向 7 PageHeight属性 表示打印机一页的高度 8 PageWith属性 表示打印机一页的宽度 9 PageNumber属性 为当前页的值 10 Title属性 可决定在Windows打印管理器或网络中出现的文本 4 3多重窗体设计 在前面我们学习了Delphi提供的对话框 包括系统内建的消息框和通用的对话框组件 对话框是一种特殊的窗口 在设计时 对话框一般用二级窗体 主要使用的是模态窗口 对话框和其他窗口相比特点是 一般没有系统菜单 没有最大化和最小化按钮 不能改变大小等 如果想将一个窗体做为一个自定义的对话框 将其BorderStyle属性设定为bsDialog即可 由此可看出对话框的设计实际上也是多窗体的设计 但在实际中 除了使用对话框之外 多数应用程序都需要有多个窗体 所以掌握多窗体程序设计的方法是非常重要的 4 3 1多重窗体的管理 要设计管理多个窗体的Windows应用程序 必须在设计程序时创建多个窗体 所以多重窗体的管理主要是向工程中添加 删除和保存窗体 1 添加窗体向当前工程中添加一个标准的新窗体大致有以下几种方法 从 File 菜单中选取 New Form 命令选项 新窗体的默认名称 Name 和标题 Caption 均由Delphi集成开发环境自动确定 如按顺序第二个创建的窗体其默认名称为Form2 标题为Form2 在Standard工具栏上单击 NewItems 命令按钮 从弹出的NewItems对话框中选择New标签页 再从中选择Form选项 单击OK按钮 在View工具栏上直接单击 NewForm 命令按钮 也可创建一个新窗体 Delphi可以通过对已经存在的窗体进行复制 继承或引用等方法来创建新窗体 窗体的继承见图4 22所示 2 删除窗体删除工程中多余的窗体实质是删除该窗体所对应的单元 不能只删除窗体而不删除其对应的窗体单元 其操作大致有以下几种方法 从 Project 菜单中单击 RemoveFromProject 命令选项 可弹出RemoveFromProject对话框 见图4 23所示 从中选出要从工程中删除的窗体所对应的单元 然后单击OK就可删除相应的窗体 在Standard工具栏上单击 RemoveFileFromProject 命令按钮 也会弹出RemoveFromProject对话框 从中选出要从工程中删除的窗体所对应的单元 然后单击OK就可删除相应的窗体 从 View 菜单中单击 ProjectManager 命令选项 可调出项目管理器窗口 从窗口中选择要删除窗体所在的单元 再点击Remove按钮即可 3 保存窗体选择任意一个需要保存的窗体或其相对应的单元文件 然后单击 File Save 菜单项或直接单击工具栏上的 Save 按钮 来保存单个文件 也可以通过单击 File SaveAll 菜单项或直接单击工具栏上的 SaveAll 按钮来一起保存所有文件 也可以通过单击 File SaveAs 菜单项把某一个或多个文件保存到另外的位置 4 3 2设置多重窗体的主窗体 对于包含有多个窗体的Delphi应用程序 必须设定一个主窗体作为启动窗体 Delphi在创建一个新工程时 把窗体Form1作为系统默认的主窗体 如果程序员在实际开发过程中或在调试程序过程中希望把某个窗体作为主窗体时 即在程序运行时首先出现在屏幕上 可通过下面的方法实现 在 Project 菜单下单击 Options 菜单项 可弹出ProjectOptions的对话框 选中Forms选项卡 如图4 25所示 在MainForm后的下拉列表框中选择要作为启动的窗体名称 在其下拉列表中显示了该工程所有的窗体 可根据需要自由选择 4 3 3多重窗体间的处理 具有多重窗体的应用程序经常是按照预先设定的顺序 显示或隐藏窗体 1 窗体的显示窗体的显示分为模态和非模态两种显示方式 在模态方式下 屏幕显示的窗体间不可以相互切换 只有模态方式的显示窗口获得焦点 唯有当它关闭时 其它窗体才可获得焦点 而非模态显示方式则可在不同窗体间相互切换 在Delphi中 使用TForm类的Show方法来显示的窗体是非模态方式的 而使用TForm类的ShowModal方法显示的窗体则是模态方式的 2 窗体的隐藏TForm类的Hide方法用来将窗体暂时隐藏起来 使窗体处于不可视状态 但并不从内存中真正释放窗体 我们以窗体对象Form2为例 说明Hide方法的使用 其代码如下 Form2 Hide 用TForm类的Hide方法隐藏窗体 其实质相当于把窗体的Visible属性设置为False 即不可见 其代码如下 Form2 Visible False 使隐藏的窗体再显示出来 我们也可通过上面讲的Show或ShowModal的方法实现 也可以通过对窗体的Visible属性赋值来完成 其代码如下 Form2 Show 或Form2 Visible True 3 窗体的创建窗体的创建不同于窗体的显示 窗体的显示只是把已经在内存中存在的窗体显示出来 而窗体的创建是在内存中生成窗体 但还未能显示到屏幕上 在Delphi的默认情况下 向工程中添加的窗体均属于自动创建的窗体 Auto createForms 这些窗体会在Delphi应用程序运行时在内存中自动创建 为了更好的开发应用程序 有时需要用程序动态的创建窗体 Delphi下提供了Create方法可以创建窗体 例如 创建Form1窗体 programProject1 usesForms Unit1in Unit1 pas Form1 R res beginApplication Initialize Application CreateForm TForm1 Form1 Application Run end 4 窗体的释放一般使用Close方法关闭一个窗体 以窗体对象Form2为例 关闭它的程序代码则为 Form2 Close 有时根据需要也可使用Free方法来释放窗体对象资源 程序代码如下 Form2 Free 但需要注意的是用Close方法关闭的窗体 窗体实质还存在于内存中 还可以用Form2 Show的方法将窗体重新调出并显示 而用Free方法释放的窗体则已经使该窗体对象完全退出内存 不能直接用Form2 Show等类似语句将其调出
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!