Delphi实用教程.ppt

上传人:创****公 文档编号:1604751 上传时间:2019-10-19 格式:PPT 页数:27 大小:348.50KB
返回 下载 相关 举报
Delphi实用教程.ppt_第1页
第1页 / 共27页
Delphi实用教程.ppt_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《Delphi实用教程.ppt》由会员分享,可在线阅读,更多相关《Delphi实用教程.ppt(27页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第5章 多窗体和MDI窗体,Delphi实用教程,第5章 多窗体和MDI窗体,第5章 多窗体和MDI窗体,5.1 多窗体基本概念,一个应用程序能够同时打开多个文档窗体,而且这些窗体的外观基本一致,具有共同的系统菜单,每个文档窗体彼此之间可以相互切换,这种应用程序称为多文档程序。,第5章 多窗体和MDI窗体,5.2 多窗体应用程序设计 5.2.1 窗体的创建,新建一个项目时,项目中已包含了一个名为Form1的窗体。若要向项目中加入新的窗体,有两种方法:执行FileNewForm菜单命令,项目中会增加一个名为Form2的新窗体,按此方法,可以为程序加入多个窗体;使用窗体模板,Delphi 7的设计

2、思想是代码重用性,所以系统提供了一些用户可重复应用的窗体模板。例:要为项目增加一个About对话框窗体,可以选择FileOther菜单命令,在Forms选项卡中选择About Box对话框,项目中会增加一个About窗体。,第5章 多窗体和MDI窗体,5.2.1 窗体的创建,在默认情况下,工程中所有的窗体在程序运行时都是自动创建的,这是因为工程文件在执行时,由系统执行了创建窗体的过程。 例如包含了两个窗体的工程文件代码清单如下:Program Project1;uses Forms, Unit1 in Unit1.pasForm1, Unit2 in Unit2.pas AboutBox;$R

3、 *.RESbegin Application.Initialize; Application.CreateForm(TForm1,Form1); Application.CreateForm(TAboutBox,AboutBox); Application.Run;End.,第5章 多窗体和MDI窗体,5.2.1 窗体的创建,可以动态地创建该窗体对象,而当该窗体关闭时,即将该窗体清除出内存。 要实现这种操作,首先使用ProjectOptions菜单命令打开Form选项卡。将AboutBox窗体移动到右侧的列表框,即不允许系统自动创建AboutBox窗体。,添加代码实现动态创建:procedu

4、re TForm1.AboutExecute(Sender: TObjict); var About:TAboutBox; begin About:=TAboutBox.Create(Self); try About.ShowModal; finally About.Free; end; end;,第5章 多窗体和MDI窗体,5.2.2 窗体的调用,两种方法调用:Show方法:调用模态窗体 ShowModal方法:调用非模态窗体两者的返回值用来表明对话框是如何关闭的。,第5章 多窗体和MDI窗体,5.2.3 窗体的重用,创建窗体模板 创建窗体样本。 在(1)所创建的窗体区域中单击鼠标右键,在快

5、捷菜单中选择Add To Repository命令项,弹出Add To Repository对话框。,第5章 多窗体和MDI窗体,5.2.3 窗体的重用,(3) 设置所创建窗体模板的属性。(4) 单击OK按钮,在所弹出的确认对话框中单击Yes按钮,即 可将窗体Form1存储为模板。 (5) 通过选择主菜单的NewOther命令项,打开New Items对 话框的Dialogs选项卡,可以看到新增了一个窗体模板,这样 就可以使用这个模板为项目增加新的窗体了。,选择窗体模板对话框,第5章 多窗体和MDI窗体,5.2.3 窗体的重用,2. 使用Frame对象 利用Frame对象可以将几个组件封装在一

6、起,工作时可以像使用普通组件一样,将这个Frame组件放置在窗体上,可以设置这个Frame组件的属性和事件。【例】使用Frame对象进行组件封装。 (1)选择FileNewFrame菜单命令,将新建一个空的Frame 窗体 (2)在Frame窗体中放置一个Memo组件和三个Button组件,进一步 设置这些组件的属性,并编写组件事件的处理过程。,第5章 多窗体和MDI窗体,5.2.3 窗体的重用,(3)选择主菜单的FileSave命令项,保存这个Frame窗体的单元文件。(4)将所创建的Frame对象加入到组件选项页中。在Frame2窗体 区域,在弹出菜单的快捷菜单中选择Add To Pale

7、tte菜单命令,就会弹出对话框,在该对话框的Component name编辑框中填入组件名,然后在下拉列表中选择希望加入的组件选项页,最后可用Change按钮选择一个合适的组件模板图标。,设置组件模板属性,新增加的组件,第5章 多窗体和MDI窗体,5.2.3 窗体的重用,(5) 使用自己创建Frame对象就像使用其他组件一样。,Form窗口中放置Frame对象,Frame对象,第5章 多窗体和MDI窗体,5.3 MDI窗体5.3.1 MDI窗体基本概念,MDI(Multiple Document Interface)多文档界面是一个能够同时处理多重文档的应用程序的用户界面和窗体结构。 MDI中

8、包含一个父窗体与多个子窗体,他们之间是一种隶属关系,而子窗体之间是一种平等的关系。每个子窗体都是一个独立的窗体,但它们没有菜单,只有父窗体才有菜单,不过这些菜单项同时也可以被用于子窗体,一次只有一个子窗体被激活,子窗体不能移动到父窗体以外的区域。,第5章 多窗体和MDI窗体,5.3.2 建立MDI父子窗体,1.创建父窗体普通窗体的FormStyle属性设置为fsMDIForm即可2. 创建子窗体普通窗体的FormStyle属性设置为fsMDIChild即可。 【例】本例创建一个MDI应用程序,父窗体中含有3个子窗体。(1)新建一个项目,将Form1窗体的Caption属性改为“父窗体”, Fo

9、rmStyle属性设置为fsMDIForm。(2)选择FileNewForm菜单项,新建窗体Form2,将Form2 的Caption属性改为“子窗体1”,FormStyle属性设置为fsMDIChild。(3)按第2步的方法,再新建两个子窗体Form3和Form4,Canption属性 分别设置为“子窗体2”、“子窗体3”,FormStyle属性设置为 fsMDIChild均设置为fsMDIChild。(4)按F9键运行程序。,第5章 多窗体和MDI窗体,5.3.2 建立MDI父子窗体,运行结果,第5章 多窗体和MDI窗体,创建MDI应用程序界面框架,【例】使用Delphi 7的创建MDI应

10、用程序向导,创建一个MDI应用程序。 (1)选择FileNewOther菜单命令,打开New Items对 话框。(2)在New Items对话框中选择Projects选项卡,双击其中 的MDI Application,将弹出Select Directory对话框, 在其中选择保存路径,单击OK。,Select Directory对话框,第5章 多窗体和MDI窗体,创建MDI应用程序界面框架,新创建MDI应用程序,两个子窗体,可通过选择主菜单的ViewForms菜单命令,打开View Form对话框,从中选择它们来查看。,View Form对话框,第5章 多窗体和MDI窗体,5.3.3 合并菜

11、单,合并父子菜单项 如果子窗体的某菜单项的GroupIndex属性与主窗体的某菜单项的GroupIndex属性值相同,则子窗体的菜单项将替代主窗体的菜单项;而子窗体中某个菜单项的GroupIndex值与主窗体的所有菜单项的GroupIndex属性值都不相同,则子窗体菜单项将插入到主窗体菜单条上。,第5章 多窗体和MDI窗体,5.3.3 合并菜单,【例】对应用程序进行菜单合并。,首先,双击该组件,然后,选中File菜单项,最后,设置GroupIndex值为1,设置GroupIndex值分别为为1,2,3,8,第5章 多窗体和MDI窗体,5.3.3 合并菜单,子窗口菜单的处理:,自动生成的File

12、菜单,添加Setup菜单项后的子窗体,设置GroupIndex值为1,设置GroupIndex值为4,第5章 多窗体和MDI窗体,5.3.3 合并菜单,运行程序:,增加了Setup菜单项,子窗体的File菜单取代了主窗体的File菜单,主窗体菜单,子窗体菜单,新的主窗体菜单,第5章 多窗体和MDI窗体,5.3.3 合并菜单,2. 调用父窗体 要调用主窗体过程,只需引用该单元即可,即在MDIChild单元文件接口部分添加以下行:implementationuses Main;($R *.DFM)3. 创建子窗体事件处理过程(1) 添加组件 将Actionlist组件放置到窗体左下方,用它来管理针

13、对子窗体的事件处理过程,然后在其旁边依次放置SaveDialog、FontDialog、ColorDialog、PrintDialog、PrintersetupDialog对话框组件。,第5章 多窗体和MDI窗体,5.3.3 合并菜单,(2) 添加代码双击Actionlist组件,在弹出的Action编辑器中选择“新建”, 在Action编辑器窗体中,双击右栏中的Action对象即可创建Action对象的事件处理过程。在这里仅给出相应Action的OnExecute事件的处理过程。,Action编辑框属性设置,第5章 多窗体和MDI窗体,5.3.3 合并菜单,Procedure TMDIFil

14、eChild.ColorSetupExecuse(Sender:Tobject) Begin If ColorDialog1.Execute then Memo1.Color:=ColorDialog1.Color; End; Procedure TMIFileChild.FontSetupExecute(Sender:Tobject); Begin If FontDialog1.Execute then Font:=FontDialog1.Font; End;Procedure TMDIFileChild.FilesaveExecute(Sender:Tobject); Var Filena

15、me:String; Begin Filename:=SaveDialog1.FileName; Memo1.Lines.SaveToFile(FileName); End; End;,第5章 多窗体和MDI窗体,5.3.3 合并菜单,Procedure TMDIFileChild.FilePrintExecute(Sender:Tobject); Var Line:Integer; PrintText:System.text; Begin If PrintDialog1.Execute then AssignPrn(PrintText); Rewrite(PrintText); Printe

16、r.Canvas.Font:=Memo1.Font; For Line:=0 to Memo1.Lines.Count 1 do Writeln(PrintText,Memo1.linesLine); System.Close(PrintText); End; Procedure TMDIFileChild.PrintSetupSetup1Clicd(Sender: Tobject); Begin PrinterSetupDialog1.Execute End;,第5章 多窗体和MDI窗体,5.3.3 合并菜单,(3) 建立连接建立了代码,还必通过相应的连接,使菜单项能够调用这些程序代码,双击

17、子窗体中的Mainmenu组件,在Action属性中选择相应的子菜单项事件代码。(4)按F9运行程序打开一个子窗体,会发现File菜单项中不但具有相应的图标,并且具备了文件保存、打印及设置功能。在Setup菜单项中,或以设置文本字体,也可以更改文本编辑框背景颜色。,第5章 多窗体和MDI窗体,5.3.4 排列与存取MDI子窗体,常用排列子窗体方法: 1. Cascade方法 子窗体的层叠排列 2. Tile方法 子窗体的平铺排列 TileMode属性,它有两种取值:tbHorizontal方式排列可使每个子窗体的 宽度扩展到父窗体的宽度tbVertical方式可使每个子窗体高度扩展 到父窗体的

18、高度。3. 关闭子窗体窗体增加OnClose事件处理程序 procedureTMDIChild.FormClose(Sender:Tobject;var Action:TcloseAction);begin Action:=caFree;End;,第5章 多窗体和MDI窗体,5.3.4 排列与存取MDI子窗体,4. ArrangeIcons方法 重新排列最小化的图标在Delphi自动创建的MDI程序中,利用Actionlist提供的标准窗体事件都可以轻松完成。包括MDI程序中的子窗体的层叠、平铺、重排、最小化及关闭动作,它们都是TWindowAction 的派生类,并且只能作用于MDI程序中的子窗体。,TWindowAction对象的方法及说明,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > pptx模板 > 校园应用

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com