visualfoxpro程序设计案例教程(蔡莉)vf按章第10章菜单与工具栏设计.ppt_第1页
visualfoxpro程序设计案例教程(蔡莉)vf按章第10章菜单与工具栏设计.ppt_第2页
visualfoxpro程序设计案例教程(蔡莉)vf按章第10章菜单与工具栏设计.ppt_第3页
visualfoxpro程序设计案例教程(蔡莉)vf按章第10章菜单与工具栏设计.ppt_第4页
visualfoxpro程序设计案例教程(蔡莉)vf按章第10章菜单与工具栏设计.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章 菜单与工具栏设计 教学目标:学会菜单的使用方法。 教学要求:掌握菜单的建立和使用。 教学重点与难点:菜单的建立。 10.1 菜单的创建 1、设计原则 (1)根据用户任务组织菜单系统。 (2)给每个菜单和菜单选项设置一个意义明了的标题 。 (3)按照估计的菜单项使用频率、逻辑顺序或字母顺 序组织菜单项。 (4)在菜单项的逻辑组之间放置分隔线。 (5)给每个菜单和菜单选项设置热键或键盘快捷键。 (6)将菜单上菜单项的数目限制在一个屏幕之内,如 果超过了一屏,则应为其中一些菜单项创建子菜单。 (7)在菜单项中混合使用大小写字母,只有强调时才 全部使用大写字母。 2、设计步骤 (1)菜单系统规划。 (2)建立菜单和子菜单。 (3)将任务分派到菜单系统中。 (4)生成菜单程序。 (5)测试并运行菜单系统。 10.1.1菜单设计器简介 “菜单设计器”是VFP提供的可视化编程工具。使 用“菜单设计器”可以添加新的菜单选项到VFP的 系统菜单中定制已有的VFP系统菜单,也可 以创建一个全新的自定义菜单,以代替VFP的系 统菜单。 菜单是包含命令、过程和子菜单的选项列表,因 此,按等级分为父菜单和子菜单,子菜单挂在父 菜单下作为父菜单的一个菜单项。 VFP菜单系统是由一个菜单栏、多个菜单项和下 拉菜单组成。 10.1.1菜单设计器简介 “菜单设计器”是VFP提供的可视化编程工具。使 用“菜单设计器”可以添加新的菜单选项到VFP的 系统菜单中定制已有的VFP系统菜单,也可 以创建一个全新的自定义菜单,以代替VFP的系 统菜单。 菜单是包含命令、过程和子菜单的选项列表,因 此,按等级分为父菜单和子菜单,子菜单挂在父 菜单下作为父菜单的一个菜单项。 VFP菜单系统是由一个菜单栏、多个菜单项和下 拉菜单组成。 11.1.2创建下拉式菜单 利用“菜单设计器”设计菜单的操作步骤如下: 1、在“项目管理器”对话框中,选择“其他”选项卡, 再选择“菜单”,单击“新建”按钮,屏幕显示“新建 菜单”对话框。 2、在“新建菜单”对话框中,单击“菜单”按钮,系统 进入“菜单设计器”窗口 。 3、在“菜单设计器”的“菜单名称”栏中,单击要添加 下拉菜单的菜单项,在“菜单名称”列中,输入新 建的菜单项名称。 4、在“结果”列中,选定“子菜单”命令。使右侧出现 “创建”按钮。 5、单击“创建”按钮,屏幕显示“子菜单”设计窗口, 在“菜单名称”列中,输入要创建的各子菜单项名 称。 6、在菜单项之间插入分隔线。在 “菜单名称”栏中 ,单击要在之前插入分隔线的菜单项,单击“插入 ”按钮,增加一个新的菜单项,更改菜单名称为“- ”,此菜单项在运行或预览时将显示为一条分隔线 。其它分隔线的插入方法相同。 7、为菜单项指定热键。 设计良好的菜单都应具有热键,此功能可使用户 通过键盘快速地访问菜单。 为菜单或菜单项指定热键的方法为:只需在希望 成为热键的字母左侧输入“”。例如,在“菜单名 称”列中,将“文件()”菜单使用“”作为热键 ,只需在菜单名称中加入(),热键在菜单 或下拉菜单项上用带下划线的大写字母表示。然 后按下“Alt+F”键,即可激活文件菜单项目。 8、为菜单项添加快捷键。 为菜单或菜单项指定键盘快捷键的操作步骤如下 : (1)在“菜单名称”栏中,先择相应的菜单标题或菜 单项。 (2)单击“选项”栏下的按钮,屏幕将显示“提示选 项”对话框。 (3)在“键标签”框中,按下一组合键,此时在“键 标签”和“键说明”框中,都会显示所按下的快捷键 。 (4)选择“跳过”框,并输入表达式, 9、点击“预览”按钮,可以查看菜单的运行状态。 10、按Ctrl+W键保存菜单,保存后的菜单文件名的 后缀是.mnx。 在菜单的修改状态下可以从系统菜单中选择菜单“ 菜单”中的“生成”命令,编译生成菜单的执行文件 ,执行文件名的后缀是.mpr。保存后的菜单,可 以象使用应用程序一样来使用它。 例如,在命令窗口中输入菜单的调用命令: DO 菜单1.mpr 即可执行菜单。 10.1.3 创建快捷菜单 设计快捷菜单的操作步骤如下: (1)在“项目管理器”中,选择“其他”选项卡,再选 择“菜单”。 (2)单击“新建”按钮,屏幕显示“新建菜单”对话框 。 (3)在“新菜单”对话框中,单击“快捷菜单”按钮, 系统进入“快捷菜单设计器”窗口。 (4)在“菜单名称”栏中,输入快捷菜单的各个菜单 项。 (5)在“结果”选项中,择“过程”或“命令”, 如果选择“命令”,右侧出现命令文本框,在其 中输入相应的命令。 (6)单击“创建”按钮,屏幕显示“过程”代码窗口。 (7)在“过程”代码窗口中,输入过程代码。 (8)关闭“过程”代码窗口。 (9)生成菜单。在“菜单”中,选择“生成”命令,打 开“生成菜单”对话框,选择输出文件的路径和文 件名。 (10)单击“生成”按钮,生成菜单。 (11)编写调用快捷菜单的代码: 在需要调用快捷菜单的对象中编写RightClick事 件代码: DO菜单1.mpr 10.1.4 运行菜单程序 定义好了菜单后,还需要为各个菜单指定任务, 使之与系统和各个功能模块挂起来。选择一个菜 单或菜单项时,将执行相应的任务。 1、指定命令 为菜单或菜单项指定命令的操作步骤如下: (1)在“菜单名称”栏中,选择相应的菜单标题或菜 单项。 (2)在“结果”栏中,选择“命令”。 (3)在“结果”栏右侧的“编辑”框中,输入相应的命 令。 2、指定过程 为菜单或菜单项指定过程的操作步骤如下: (1)在“菜单名称”栏中,选择相应的菜单标题或菜 单项。 (2)在“结果”栏中,选择“过程”。“创建”按钮出现 在列表的右侧。如果已定义了一个过程,则这里 出现的是“编辑”按钮。 (3)单击“创建”或“编辑”按钮,屏幕显示“编辑过 程”窗口。 (4)在窗口中,输入要执行的代码。 下拉菜单的运行一般设置在主程序中,快捷菜单 则在相应表单或控件的RightClick中调用。调用 代码同执行一个程序文件相同,使用DO命令。 例如:DO 菜单文件名.mpr 完整代码如下: DO 菜单文件名.mpr READ EVENTS 10.2 用类设计器定义工具栏类 1、单击“文件”菜单中的“新建”命令,打开“新建”对 话框。 2、选中“文件类型”中的“类”,单击“新建文件”按钮 ,打开“新建类”对话框。 3、在“类名”框中,键入新类的名称mytoolbar。 4、从“派生于”框中,选择“toolbar”,以使用工具 栏基类。或者单击按钮,选择其他工具栏类。 5、在“存储于”框中,键入类库名sditbar,保存创 建的新类。或者单击按钮选择一个已有的类库。 单击“确定”按钮,关闭对话框,并打开“类设计器 ”。 6、在新建的工具栏类中添加命令按钮控件和分隔符 控件Separator1。 7、为新建的工具栏类设置属性 对于工具栏内的按钮控件,有以下常用属性: Width属性:可以设置对象的大小。 Picture属性:指定对象上的图标。 DisabledPicture属性:指定按钮处于非激活状态 时的图标。 DownPicture属性:指定在按钮被按下时显示的 图标。 ToolTipText属性:指定当鼠标移到按钮上方时 所显示的提示信息。 对于工具栏,有以下常用属性、方法和事件: Caption属性:指定工具栏的标题。 ControlBox属性:指定工具栏在运行时刻是否包 含控制菜单框。 Moveable属性:指定在运行时刻用户是否可以移 动工具栏。 Name属性:指定工具栏的名称。 ShowTips属性:确定是否显示工具栏中控制的 提示。 Sizeable属性:指定在运行时用户是否可以调整 工具栏的大小。 Dock方法:沿着 VFP 主窗口的边界停放“工具栏 ”对象。 语法:ToolBar.Dock nLocation , X, Y l参数:nLocation:指定工具栏停放的位置。 lX, Y:指定工具栏停放位置的水平坐标和垂直 坐标。 AfterDock事件:指定在控制工具栏停放后发生 的动作。 BeforeDock事件:指定在控制工具栏停放前发生 的动作。 8、将工具栏加到自己的程序中 (1)利用表单设计器 首先将所建的工具栏类加到自己的项目中。打开 要使用此工具栏的表单集,在“表单控制”工具栏 中单击“查看类”,在列表中单击“添加”,选择工 具栏类,然后再次单击“查看类”,从显示的列表 中选择该工具栏类。从“控制”工具栏中选择工具 栏类,在表单上单击添加此工具栏,然后将其拖 动到适当的位置。 第11章 应用程序开发 教学目标:学会应用程序的开发。 教学要求:掌握应用程序的开发。 教学重点与难点:应用程序的开发。 11.1 开发应用程序的基本步骤 1、需求分析阶段:开发数据库系统首先要明确用 户的各项需求,以确定系统实现的目标和软件开 发的构思。 2、设计阶段:对系统开发进行总体规划,建立软 件系统的结构。它包括数据库设计和系统功能模 块设计。 3、实施阶段:用某个数据库管理系统来具体实现 所做的设计方案。 4、测试阶测试阶 段。 5、运行维护阶维护阶 段:系统统通过测试过测试 后即可投入运 行,并在运行过过程中不断修改、调调整和完善。 3、实施阶段 此阶段一般包含下面五部分。 l(1)数据库设计 操作管理数据库里面的数据 是系统的核心目标。 l(2)菜单设计 用于组织应用程序的各项功能 。 l(3)界面设计 用于控制数据的输入和输出。 l(4)功能模块设计 用于完成具体的数据处理 功能,如数据的录入、修改和编辑,信息的查 询与统计等,一般通过控件的事件来实现。 l(5)调试程序 当一个程序完成后,应该进行 调试,找出程序中的各种错误。 4、测试阶段 此阶段的任务有以下几项 l(1)验证应用程序是否在不同条件下都能得 到正确的结果。 l(2)检查系统是否完全满足用户的需求,在 功能上是否还有遗漏。 l(3)检验在程序运行过程中对可能遇到的问 题是否都有相应的解决措施,确保系统正式投 入使用时的安全性和可靠性。 11.2 应用程序的优化 1、优化表和索引 2、使用Rushmore 技术加速数据访问 3、优化表单和控件 4、提高VFP程序性能的一般技巧 1、优化表和索引 (1)如果没有启用记录或表缓冲,应该使用 INSERT-SQL命令; (2)当需要将大量记录追加到索引过的表中时,应 先取消或关闭索引,在数据追加完毕,再重建索 引; (3)在SQL语句中要尽量避免函数调用; (4)如果需要经常使用某种索引顺序,应周期性使 用此索引对表进行排序,提高表的性能; (5)在多用户环境中,使用CDX 索引文件比 IDX 索引文件快。 2、使用Rushmore 技术加速数据访问 使用 Rushmore 技术可以显著地提高查询的速度 。Rushmore 是一种从表中快速地选取记录集的 技术,它可将查询响应时间从数小时或数分钟降 低到数秒。访问单表时,使用 FOR 子句,访问 多表时,使用SELECT-SQL 查询,可自动隐含地 使用该技术。 (1)访问单个表中的数据,使用一个FOR子句; (2)访问多个表中的数据,使用SELECT-SQL、 DELETE-SQL、UPDATE-SQL命令。 3、优化表单和控件 (1)使用数据环境; (2)在表单集里限制表单数目; (3)在页框中动态加载页面控件; (4)动态绑定控件与数据; (5)当必须对屏幕进行多处更改时,延迟屏幕刷新 ; (6)在经常使用的方法程序中减少代码。 4、提高VFP程序性能的一般技巧 (1)数据要选择正确的数据类型 (2)避免重复打开文件,需要打开多个文件时,将 它们分配给不同的工作区,需要时使用SELECT 命令选择工作区; (3)尽量使用FORENDFOR循环,而不要使用 DO WHILEENDDO循环,因为FOR循环较快 ; (4)从多个字段复制数据时,用SCATTER TO ARRAY 比用SCATTER MEMVER快; (5)为了有效的使用内存,避免在需要对象之前就 创建它们,当不要该对象时应及时清除它; (6)尽量将输出发送到顶层窗口,速度快些; (7)使用SET TALK OFF命令取消状态显示,可 节省屏幕顶端更新时间; (8)将SET DOHISTORY 设置为OFF,避免当运 行程序时每次都更新命令窗口; (9)使用名称表达式代替宏替换,因为名称表达式 更快; (10)有效地引用对象属性。 l优化对属性的重复引用,可将属性值保存到一个变 量中,再进行更改,在完成时一次性的设置属性。 l有效地引用多个属性,可以用WITHENDWITH 命令避免重复查找同一个对象,或将对象的引用保 存在变量中。 11.3 程序开发实例 11.3.1系统总体设计 11.3.2系统数据库设计 11.3.3系统功能模块设计 11.3.4系统实施 11.3.1系统总体设计 “通讯录管理程序”要求可以对联系人的基本信 息进行分组管理,并具有打印功能,根据需求分 析设计出系统的总体结构图。 通讯录管理程序 分组信息录入通讯录录入通讯录浏览数据维护 分组信息维护通讯录维护 11.3.2系统数据库设计 系统数据库设计就是确定数据中所包含的表。根 据系统的使用需求,归纳出2个实体:通讯录信息 表、分组信息表。 然后进行逻辑结构设计,将其转换为VFP数据库 管理系统所支持的关系数据库模型,即转换为2个 二维表。 最后进行物理设计,确定字段名称、数据类型、 名称、索引

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论