




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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方法来显示的窗体是非模态方式的,而使用T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 驰援上饶发言稿
- 时间机器小说课件
- 小学宪法教学课件
- 时间在流逝课件中心
- 时间像小马车课件伴奏
- 二零二五年度抵押房产评估报告出具服务合同
- 2025版房地产代理合同(含商业地产租赁)
- 二零二五年度文化艺术中心店面租赁与管理合同
- 某某投资合伙企业2025版合伙人权益保障补充协议
- 二零二五年国有企业股权转让与员工安置方案合同示范
- 高效沟通提升医药代表拜访技巧的五大秘诀
- 《环甲膜穿刺术》课件
- 咽喉炎疾病演示课件
- 过程经验教训管理流程(含附表)
- 中国透析患者慢性心力衰竭管理指南
- 医院处方笺模板(可根据实际需要修改)
- 提高口服药准确服用率品管圈课件
- 某公司管控模式与组织结构设计课件
- 患者用药指导全国知识技能竞赛必备考试题库(带答案)
- 高级财务会计-(刘永泽、傅荣主编-)
- 城市轨道交通供电综合自动化技术PPT完整全套教学课件
评论
0/150
提交评论