- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 多文档界面设计 7.1 MDI的组成 7.2 多文档界面设计 习题 7.1 MDI的组成 MDI是一个能同时处理多重文档的应用程序的用户界面和窗体结构,MDI应用程序可以在单个窗体的用户区保持多个文档窗体。MDI结构分两个部分,第一部分是父窗体,它是应用程序的父窗体,就像一个容器一样可以包含许多子窗体,只有主窗体有菜单;第二部分是子窗体,用来包容文档,这些文档可以是相同类型的文件,也可以是不同类型的文件。 7.1 MDI的组成 7.1.1 父窗体 在MDI应用程序中,父窗体用来为应用文档提供工作区,它能包含一个或多个子窗体。父窗体和普通窗体一样,一般包括标题栏、菜单栏、工具栏和状态栏,并且也可以做与普通窗体一样的操作。所不同的是父窗体并不直接控制自己的用户区,而是在用户区上打开其他的窗体,在这些窗体上完成工作。 7.1 MDI的组成 7.1.2 子窗体 子窗体是一个独立的窗体,显示在父窗体的用户区,没有菜单栏、工具栏和状态栏,但可以使用父窗体的这些工具。在设计阶段创建的MDI子窗体是一个模板,在运行阶段,所有的子窗体只能在父窗体边界内显示,尽管子窗体可以同时被显示,但一次只能有一个子窗体被激活。 7.1 MDI的组成 创建子窗体的方法和普通窗体类似,只要将它的FormStyle属性设置为fsMDIChild,便表示创建了一个子窗体。 下面介绍几个与MDI应用程序中Form组件相关的事件与方法 7.1 MDI的组成 (1) OnClose事件: 该事件可用来定义窗体关闭时执行的动作。在该事件处理过程中,可以测试各种数据信息,决定该窗体是否允许关闭等。该事件有一个TCloseEvent类型的Action参数,以决定窗口将执行的动作,其取值及含义如下: caNone:不允许关闭窗体。 caHide:窗体变成隐藏状态,程序可以访问一个隐藏的窗体。 caFree:关闭窗体,释放相应的内存。 caMinimize:最小化窗体。 7.1 MDI的组成 (2) OnCloseQuery事件 该事件在调用Close方法或选择系统菜单的Close选项时发生。它包含一个CanClose参数,用于表示是否可以关闭该窗体,该参数的默认值为true,将该参数设置为false,将禁止关闭该窗体。 (3) ArrangeIcons方法 该方法只对MDI父窗体起作用,它将重新均匀地排列窗体中被最小化的子窗体,使得各子窗体不相互覆盖。 (4) Cascade方法 该方法只对MDI父窗体起作用,它使得MDI程序的每个子窗体在父窗体左上角到右下角级联形式排列,每个窗体相互覆盖,被覆盖的窗体只显示窗体的标题,这样可以方便地选择所有的子窗体。 7.1 MDI的组成 (5) TileMode属性 该属性定义了MDI子窗体在父窗体中的排列方式。它有两种取值: tbHorizontal:MDI子窗体水平排列。 tbVertical:MDI子窗体垂直排列。 (6) Tile方法 该方法只对MDI父窗体起作用,它根据TileMode属性中定义的各子窗体的排列方式,平铺排列MDI主窗体中的各MDI子窗体。 7.1 MDI的组成 7.1.3 使用多文档模板 Delphi 7提供了预先设计好的MDI模板。通过应用模板,用户可以很方便地创建一个简单的MDI应用。 (1) 打开MDI模板。 选择File→New→Other菜单命令,进入New Items对话框后选择Projects选项卡,如图7-1所示。 7.1 MDI的组成 7.1 MDI的组成 (2) 选中MDI Application选项后,单击OK按钮,弹出选择路径对话框,如图7-2所示。 7.1 MDI的组成 将光标移动到bin目录上,再单击OK按钮,就可以打开MDI模板,打开后如图7-3所示。在MDI模板中,已经布置好了六个组件,如下: TMainMenu组件:系统定义好的菜单项。 TOpendialog组件:用来设置在选择File菜单下的Open命令时,打开文件对话框。 TActionList组件:用来集中管理程序中各种动作。 TImageList组件:提供菜单项前面的标准位图。 TPanel组件:对应菜单项的九个快捷按钮。 TStateBar组件:窗体底部的状态栏,用来显示信息。 7.1 MDI的组成 【例7-1】新建一个MDI应用程序,在父窗体中设计两个子窗体和一个主菜单(利用模板),运行结果如图7-5所示。 7.1 MDI的组成 步骤如下: (1) 新建一个工程MDIPrj.dpr,将Form1窗体的Caption的属性值设置为“父窗体”,FormStyle属性值设置为fsMDIForm。 (2) 选择File→New→Form菜单命令,新建窗体Form2,将Fo
文档评论(0)