已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八章 对话框设计,8.1 通用对话框组件 8.2 模式对话框与无模式对话框 8.3 消息框 习 题,8.1 通用对话框组件,Delphi 7在通用对话框库中提供了标准对话框,用户可以实现打开和保存文件、搜索和替换、选择颜色、字体以及打印等操作,为Windows应用程序设计标准用户界面带来了极大的方便。在编写应用程序时,可以先设计好主菜单。在需要使用标准对话框菜单项的事件处理中,调用标准对话框的Execute等方法,以满足设计需要。,8.1 通用对话框组件,8.1.1 文件对话框组件 Delphi 7中包括了四种通用的文件对话框组件。 1打开文件对话框(TOpenDialog) (1) 用途 通常情况下,标准的Windows应用程序中的“文件”菜单包含“打开”命令,选择该命令,将弹出打开文件对话框,使用该对话框选择要打开的文件。用户可以通过下拉框选择文件的存放位置、文件类型以及文件列表中要打开的文件。当用户单击了“打开”按钮,对话框将关闭,用户选中的一个或多个文件将被打开。 Delphi 7提供了打开文件对话框组件TOpenDialog,用来显示一个“打开”对话框,在程序中使用Execute方法来激活OpenDialog对话框。,8.1 通用对话框组件,(2) 主要属性 DefaultText属性 FileName属性 Filter属性 InitialDir属性 Options属性 Title属性,8.1 通用对话框组件,【例8-1】利用主菜单的“文件打开”命令和OpenDialog组件来显示“打开”对话框。,图8-3 窗体界面设计,8.1 通用对话框组件,2保存文件对话框(TSaveDialog) 保存文件对话框TSaveDialog组件用来弹出一个“另存为”对话框,让用户选择一个文件并保存。调用该组件的Execute方法可以弹出保存文件对话框,当用户单击“保存”按钮后,对话框将关闭,选中的文件名将被赋给FileName属性。 保存文件对话框组件的属性、方法和事件与打开文件对话框组件基本相同。,8.1 通用对话框组件,3打开图像文件对话框(TOpenPictureDialog) 打开图像文件对话框TOpenPictureDialog组件实际上与打开文件对话框组件基本相同,只是用于选择以及打开图像文件,对话框中包含了一个矩形的预览区域,如果可以读取选中的文件,该文件将在预览区域显示。该对话框支持的文件类型包括位图(.bmp)、图标文件(.ico)、Windows图元文件(.wmf)以及增强型Windows图元文件(.emf)。 该对话框具有与TOpenDialog相同的属性集,但是默认情况下,Filter属性对应于TOpenPictureDialoge组件支持的所有文件类型。,8.1 通用对话框组件,4保存图像文件对话框(TSavePictureDialog) 保存图像文件对话框TSavePictureDialog组件用来弹出一个带有图象预览的“另存为”对话框,该对话框的外观以及使用与TOpenPictureDialog对话框基本相同。,8.1 通用对话框组件,8.1.2 字体对话框(TFontDialog)组件 1用途 使用TFontDialog组件可以显示一个选择字体对话框,当用户选中了一个字体并单击“确定”按钮之后,对话框将关闭并将选中的字体保存在组件的Font属性中。调用Execute方法可以激活该对话框。 2主要属性 (1) Device属性 (2) Font属性 (3) MaxFontSize和MinFontSize属性 (4) Options属性,8.1 通用对话框组件,【例8-2】设计一个字体对话框,当用户选中某种字体之后,按钮的字体将改变为选中的字体。,8.1 通用对话框组件,编写代码。 响应按钮OnClick事件的代码如下: procedure Tform1.Button1Click(Sender:TObject); begin FontDialog1.Execute; end; 在窗体的OnApply事件中添加代码如下: procedure TForm1.FontDialog1Apply(Sender: TObject; Wnd: HWND); begin button1.Font:=fontdialog1.Font; end;,8.1 通用对话框组件,8.1.3 颜色对话框(TColorDialog)组件 1用途 颜色对话框TColorDialog组件用来显示标准的Windows颜色对话框,用户可以从中选择一种颜色。调用该组件的Execute方法可以弹出“颜色”对话框,当用户选择了一种颜色并单击“确定”按钮之后,对话框将关闭,并且选中的颜色保存在组件的Color属性中。一个标准的颜色对话框如图8-11所示,8.1 通用对话框组件,图8-11 颜色对话框,8.1 通用对话框组件,2主要属性 (1) Color属性 (2) CustomColors属性 (3) Options属性,8.1 通用对话框组件,8.1.4 打印(TPrintDialog)与打印设置对话框(TPrinterSetupDialog)组件 1用途 打印机对话框TPrintDialog组件用于显示标准的Windows“打印”对话框,通过它可以向打印机发送打印作业。打印设置对话框组件(TPrinterSetupDialog)用于显示一个打印设置对话框,该对话框的内容与打印驱动程序有关,这两个对话框都可以通过Execute方法调用进行显示。,8.1 通用对话框组件,图8-13 打印对话框,图8-14 打印设置对话框,8.1 通用对话框组件,2主要属性 (1) Collate属性 (2) Copies属性 (3) FromPage以及ToPage属性 (4) MaxPage以及MinPage属性 (5) Option属性的poPrintToFile子属性 (6) PrintToFile属性,8.1 通用对话框组件,8.1.5 查找及替换对话框组件 1查找对话框组件(TfindDialog) (1) 用途 通过“查找”对话框用户可以查找文本中的某个特定字符串,调用TFindDialog组件的Execute方法可以弹出一个“查找”对话框,如图8-15所示。,图8-15 “查找”对话框,8.1 通用对话框组件,(2) 主要属性 FindText属性 Left、Top以及Position属性 Options属性 2替换对话框组件(TReplaceDialog) (1) 用途 通过“替换”对话框用户可以查找一个特定的字符串并将该字符串替换为另外一个字符串,该对话框在修改文本输入错误很有用。调用TReplaceDialog组件的Execute方法可以弹出一个“替换”对话框,如图8-16所示。,8.1 通用对话框组件,图8-16“替换”对话框,8.1 通用对话框组件,(2) 主要属性 TReplaceDialog组件是由TFindDialog组件派生出来,除了TFindDialog组件的属性外,它还具有ReplaceText属性,该属性为一个字符串,它代表了“替换为”编辑框中的内容。 该组件除了具有OnFind事件外,还有一个OnReplace事件,当用户单击“替换”或“全部替换”按钮时被激活,用户可以通过Options属性中的frReplace或ReplaceAll的值为true或false来判断单击了哪个按钮。,8.2 模式对话框与无模式对话框,8.2.1 模式对话框 1模式对话框的概念 模式对话框在程序中应用最为普遍。当用户在应用中显示一个对话框时,用户不能在该对话框和其他窗体之间进行切换,而必须关闭了该对话框,才能将输入焦点转移到其他窗体,这种对话框称作模式对话框。模式对话框用于用户必须做出选择并进行确认的操作,通常在对话框上会有“确认”和“取消”按钮。,8.2 模式对话框与无模式对话框,2模式对话框的创建 在Delphi中,对话框实际上是一个窗体,只是属性与其他窗体不同。要创建对话框,首先要新建一个窗体,并将窗体的BorderStyle属性设置为bsDialog,然后运行该窗体,用户就会发现该窗体没有最大化和最小化按钮,也没有系统菜单,并且不能改变窗体的大小,这些就是对话框窗体与其他窗体的区别。,8.2 模式对话框与无模式对话框,【例8-3】设计一个“考试系统”登录界面,如图8-18所示。用户必须选择登录身份,如果是管理员,必须输入密码;如果是考生,必须输入八位准考证号。,图8-18 登录界面,8.2 模式对话框与无模式对话框,编写代码。在LoginForm窗体所对应的单元文件中添加如下代码: implementation $R *.dfm 登录界面“确定”按钮的事件处理程序代码如下: uses ExamUnit; /ExamUnit是模式对话框的单元文件 const glmm=ksxt; /定义管理员密码,8.2 模式对话框与无模式对话框,procedure TLoginForm.BtnConfirmClick(Sender: TObject); begin if (not RadioButton1.checked) and (not RadioButton2.Checked) then MessageDlg(请选择用户身份!,mtWarning,mbOK,0); /必须选择用户身份 if RadioButton1.checked then /用户身份为管理员 if edit1.text=glmm then begin ExamForm.caption:= 系统管理; ExamForm.ShowModal; close; end else MessageDlg(密码错误,请重新输入!,mtError,mbOK,0);,8.2 模式对话框与无模式对话框,If RadioButton2.checked then /用户身份为考生 if Length(Edit2.text)8 then MessageDlg(重新输入准考号!,mtWarning,mbOK,0) else begin ExamForm.caption:=祝你成功; ExamForm.ShowModal; close; end; end;,8.2 模式对话框与无模式对话框,“退出”按钮的事件处理代码如下: procedure TLoginForm.BtnQuitClick(Sender: TObject); begin close; end;,8.2 模式对话框与无模式对话框,8.2.2 无模式对话框 相对于模式对话框,无模式对话框不但允许用户在对话框与别的应用之间切换,而且还允许用户在对话框和同一个进程中的其他窗体进行切换,所以无模式对话框更类似于Windows中常见的弹出式窗体。 当用户在程序中进行某些操作时希望对话框保持打开,便使用无模式对话框,例如Word中的“查找”和“替换”对话框,使用“查找”对话框,用户不需要结束对话框,就可以重复查找一个字符串。 在Delphi中,显示无模式对话框应调用Show方法,该方法没有返回值,因为该方法并非等到对话框关闭时才返回,而是立即返回。,8.2 模式对话框与无模式对话框,【例8-4】在例8-3的基础上设计无模式对话框。要求在模式对话框界面上单击“进入”按钮后,进入无模式对话框。,图8-25 无模式对话框界面,8.2 模式对话框与无模式对话框,编写程序代码。 模式对话框单元文件ExamUnit中添加如下代码: implementation uses TestUnit; /TestUnit是无模式对话框的的单元文件 $R *.dfm “进入”按钮的OnClick事件处理代码如下: procedure TExamForm.Button1Click(Sender: TObject); begin TestForm.Show; /显示无模式对话框 end;,8.3 消息框,当应用程序想从用户那里得到一个简单的应答时,使用消息框来代替对话框是很合适的,并且也更容易。弹出一个消息框可以有多种方法。 1 MessageDlg函数 一般情况下用MessageDlg函数弹出一个消息框,该函数的语法如下: iItem:=MessageDlg(const Msg:string;Atype:TmsgDlgType; Abuttons:TmsaDlgButton;HelpCtx:Longint):Word;,8.3 消息框,Msg参数指定了消息框显示的内容, Atype参数指定消息框的类型,该参数类型为TmsgDlgType,它的取值及含义见表8-4。 Abuttons参数指定了消息框包含哪些按钮,该参数类型为TmsgDlgButtons,它的取值及含义见表8-5。 HelpCtx参数指定了帮助主题的帮助上下文的ID。,8.3 消息框,表8-4 Atype参数的取值,8.3 消息框,表8-5 Abuttom参数的取值,8.3 消息框,MessageDlg的返回值与用户所选的按钮有关。使用下面的代码就可以方便地显示一个消息框: MessageDlg(输入的数据无效!,mtWarning,mbOk,mbHelp,0);,图8-27 消息框,8.3 消息框,2 MessageDlgPos函数 MessageDlgPos函数与MessageDlg函数的使用方法基本相同,只是可以用X和Y参数确定消息框的位置。其语法如下: Function MessageDlgPos (constMsg:string;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons; HelpCtx: Longint;X,Y:Integer):Word; MessageDlgPos返回用户所选择的按钮的值,表8-6给出了可以在消息框中使用的各种按钮的TMsgDlgBtn的值,以及相应的返回值。,8.3 消息框,表8-6 各按钮的返回值,8.3 消息框,3 ShowMessage过程 调用ShowMessage过程可以显示一个带有OK按
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨境电商海外仓打包服务合同协议2025年合作版
- 【项目方案】光伏配500kW-1MWh集装箱式储能系统设计方案
- 2025年白内障术后家属护理合同协议
- 深度解析(2026)《GBT 39334.5-2020机械产品制造过程数字化仿真 第5部分:典型工艺仿真要求》(2026年)深度解析
- 深度解析(2026)《GBT 39260.2-2020用例方法 第2部分:用例模板、参与方清单和需求清单的定义》
- 镇消防整治面试题及答案
- 2025年下半年遂昌县部分机关事业单位招聘编外用工备考题库及答案详解(考点梳理)
- 东莞市城建工程管理局2025年公开招聘编外聘用人员备考题库及答案详解(新)
- 云南大学附属医院开展2026年校园招聘的备考题库及完整答案详解一套
- 2026年厦门市莲花小学25-26学年下学期顶岗音乐教师招聘备考题库及完整答案详解一套
- 2025榆林市旅游投资集团有限公司招聘(15人)考试参考题库及答案解析
- 广东省湛江市2024-2025学年高一上学期1月期末调研考试物理试卷(含答案)
- 山东省济南市2024-2025学年高二上学期期末学习质量检测物理试卷(含答案)
- 项目管理入门:WBS任务分解详解
- 花都区2024-2025学年第一学期六年级英语期末学业测评考点及答案
- 2025年iba事业单位面试题库及答案
- 【《77500WDT散货船总体结构方案初步设计》18000字】
- 【妇产科学9版】第18章外阴及阴道炎症
- 检验检测机构质量培训
- 2025年Q2无人机航拍服务定价及市场竞争力提升工作总结
- 液化气站员工安全培训大纲
评论
0/150
提交评论