




已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
HDP E VFP面向对象程序设计 数据库原理与应用 讲稿五 黄都培制 面向对象程序设计 对象 类 继承 封装 事件 方法 概念 将待开发的信息系统看作 对象 通过面向对象的系统分析 OOA 面向对象的系统设计 OOD 面向对象的系统实现 OOP 三个阶段 利用对象 类 封装 继承 消息等原理和方法对信息系统的进行开发 VFP可视化编程 VisualFoxPro采用面向对象 事件驱动的编程方法 程序员不再以 过程 为中心思考应用程序开发的结构 而是面向可视的 对象 由用户启动的事件和方法来开发应用程序 为了实现这种可视化编程的需要 VisualFoxPro提供了一系列的可视化编程工具 项目管理器 表设计器 表单设计器 报表设计器 查询设计器 代码生成器 控件等 通过项目 菜单 表单以及报表来建立人机接口界面 实现数据的输入 输出和各功能程序模块的连接 使得程序设计更加轻松 容易和简便 对象 Object 是反映客观事物属性及行为特征的描述 对象可以是具体的事物 人 也可以是某些概念 客观世界中任何实体都可以被看成是对象 每个对象都具有可描述的特征或属性及附属于它的行为 对象的属性和行为是封装在一起的 是一个动态的概念 对象是面向对象编程的基本元素 是 类 的具体实例 对象是包含数据和代码的实体 在程序设计中 用属性 事件和方法来说明对象属性就是对象的数据 如颜色 大小 事件和方法则是对象中包含的代码 类 Class 在客观世界中 有许多具有相同属性和行为特征的事物 类是一组对象的属性和行为特征的抽象描述 或者说 类是具有共同属性 共同操作性质的对象的集合 对象和类的概念是很相近的 但是它们又是不同的 类是对象的抽象描述 对象是类的实例 类是抽象的 对象是具体的 类的特性 继承性 封装性类是用于对公共任务的封装 同类对象在操作中可以相互继承 属性 Attribute 是用来描述对象特征的参数 用于表示对象状态 属性是属于某一个类的 不能独立于类而存在 派生出的新类将继承基类和父类的全部属性 也可以重新定义新类属性 或为新类增添新属性 在VisualFoxPro系统中 各种对象拥有70多个属性 对象的属性可以在设计对象时定义 也可以在对象运行时进行设置 事件 Event 事件是一种预先定义好的特定动作 事件用来被用户或系统激活 每个对象都可以对事件的动作进行识别和响应 事件集合是固定的 用户不能进行扩充 如按钮是一个对象 它的典型事件有 Init 在对象被创建的时候被激活 Click 单击鼠标的时候被激活 Mousedown 鼠标按下的时候被激活 方法 Method 方法实际上就是对象自带的内部操作 与事件不同的是 方法可以由用户进行扩展 如表单对象的常用方法有 Refresh 重画表单 刷新表单中的所有值Show 显示表单 Hide 隐藏表单 容器对象和控件对象 容器对象可以容纳其他的对象 如 表单 控件对象不能容纳其他对象的对象 如 按钮 访问对象的表达如果表单对象form01包含了按钮对象butt01 那么访问 或说明 按钮对象的表达方法为 Form01 butt01 对象的表达方式 This 对象自身 Thisform 该对象所在的表单 Parent 包含该对象的直接容器 Thisformset 该对象所在的表单集 例如 编程的时候需要从对象butt01访问同一表单内的对象text01 则表达方法为 Thisform text01或者This parent text01 对象的操作 由类创建对象 对象名 CREATEOBJECT 基类名 设置对象属性 1 parent object property value2 withobject property valueendwith 用命令方式给对象设置属性值 设置单个属性 object property value设置多个属性 with endwith结构 WITHFormSet1 Form1 Txt1 Visible t 使其可见 Enabled t 使其可用 backcolor rgb 192 192 192 使其背景为浅灰色ENDWITH 设计类 菜单方式 新建 类 改变类的属性为 关闭 添加代码 通过编程定义类 DEFINECLASSMYFORMASFORMVISIBLE T BACKCOLOR RGB 128 128 0 CAPTION 我的表单 LEFT 20TOP 10HEIGHT 223WIDTH 443ADDOBJECTCOMM1ASCOMMANDBUTTON WITHCAPTION 关闭 LEFT 300 TOP 150 HEIGHT 25 WIDTH 60PROCEURECOMM1 CLICKA MESSAGEBOX 4 16 0 A IFA 6RELEASETHISFORMENDIFENDPROCENDDEFINE 响应事件和调用方法 在对象上所做的动作及所采用的操作 当对象的事件发生时 该事件的过程代码就被自动执行 事件一般是由用户的交互方式触发的 如单击或双击鼠标 按下键盘上的键 也有些是被系统触发的 象计时器控制中的Timer事件 在没有事件发生时 用户也可以显式地调用与事件相关的方法 例如 用户单击COMMAND按钮 将产生一个Click事件 使该按钮所定义的Click事件代码 THISFORMRELEASE的方法被执行 事件与方法 ClickrightclickDblclickDestroy 释放对象时GotfocusInit 当创建对象时KeypressLoad 在创建对象之前LostfocusMousedownMousemove 鼠标移到对象上之前mouseup 显式调用对象的方法 Parent Object Activate该语句使Activate事件代码被执行 但事件并不发生显式调用可以在程序的任何地方 例如 FormSet1 Form1 ShowFormSet1 Form1 ComdBut1 SetFocus 事件的顺序 VFP中 程序的执行顺序不是在设计时确定的 而是取决于事件的顺序 了解事件发生的顺序是很重要的 否则就无法确定该往哪个事件中写入代码 启动运行VFP的表单时对象的事件顺序 对象 数据环境Dataenvironment 事件 BeforeOpenTables表单集FormSetload表单FormloadDataenvironmentcursors 临时表 initDataenvironmentinit表单中的对象Objectsinitforminitformsetinit activeformactiveobjects when gotfocus massage valid lostfocus destroyformunloadformsetunloadDataenvironmentafterclosetable destroyDataenvironmentcursorsdestroy 其他的事件依赖于用户的动作或系统的反应 如计时器的Timer事件 信息提示对话框的制作 MESSAGEBOX的用法 MESSAGEBOX 显示一个用户自定义的对话框 第一个参数为显示在对话框中的提示信息 第二个参数为对话框类型 4表示 是 和 否 两种选择 32表示在框中显示图标 问号 256表明如果用户直接按回车键 缺省值 否 将被选择 第三个参数是出现在对话框的标题栏的文本 如果省略 则在标题栏上显示 MicrosoftVisualFoxPro MESSAGEBOX 的返回值 后的数 为对话框选择的按钮 6表示选择了 是 按钮 例 MESSAGEBOX 确定要退出吗 4 32 0 开始表单 6 MESSAGEBOX 中第二个参数值说明 MESSAGEBOX 返回值说明 表单设计 表单设计器是VisualFoxPro提供的一个功能非常强大的可视化人机界面设计 Visual 工具 表单的类型 按表单的用途分 系统接口 界面 表单 系统片头 进入退出 系统安全设置 系统各层次模块的衔接等 数据库显示与操作表单 对数据库表 视图等的建立 显示 编辑 修改 查询 输出等 打开表单设计器 在 文件 菜单中选择 新建 或直接单击常用工具栏上的 新建 按钮 出现 新建 对话框 选择 表单 单选钮并按 新建文件 按钮 在命令窗口中使用命令 CREATEFORM命令 在项目管理器中选择 文档 选项卡 用鼠标选中 表单 再按 新建 按钮 在弹出的 新建表单 对话框中选择 新建表单 按钮 将鼠标移到标准工具条上的任意位置 单击鼠标右键 从弹出的快捷菜单中选择 表单设计器 从 显示 菜单中选择 工具栏 在 工具栏 对话框中选择 表单设计器 创建表单 菜单方式 文件 新建 表单 新建文件 命令方式 Createform表单名 scx表单向导创建表单 第二种表单 新建 向导 单表表单向导 多表表单向导 父表和子表 编辑和运行表单 编辑表单菜单 文件 打开 打开表单命令 MODIFYFORM scx运行表单菜单 表单 执行表单 命令 DOFORM scx工具栏 用 向导 快速生成表单 对数据库中单表的输出显示 文件 新建 表单 向导 表单向导 按步骤完成 选择 表 字段选取 选择表单样式 设置排序字段对数据库中关联表 多表 的输出显示 文件 新建 表单 向导 一对多表单向导 按步骤完成 选择 父表 字段 选择 子表 字段 建立表之间的关系 已建关联 选择表单样式 设置排序字段注意 父 子表的选择 通常父表对应1端 子表对应N端 1 依据学生数据表设计一个单表浏览表单2 依据学生表和专业表 成绩表及其联系设计一个一对多表浏览表单 操作示例 用设计器设计表单 表单设计器工具栏1 设置Tab键次序当表单运行时 按Tab键使焦点在控件之间移动的次序 2 数据环境与表单相关的全部表 视图及其关系 数据环境随表单一起保存 当打开或运行表单时 会自动打开其中的表或视图 在关闭或释放表单时自动关闭表 3 属性窗口属性窗口包含选定对象 表单或控件 的属性 事件和方法列表 可在设计或编程时对这些属性值进行设置或更改 全部 表单的全部属性 事件和方法 数据 所选对象如何显示或怎样操纵数据的属性 方法程序 对象所使用的方法和事件 布局 表单的框架与布局 其他 特殊及用户自定义的属性 4 代码窗口 代码 Code 窗口 是编写关于该对象事件过程和方法代码 编制程序 的地方 5 表单控件工具栏 表单控件 工具栏中提供了VFP可视化编程的各种控件 利用这些控件 可以创建出所需要的各种应用 单击 表单设计器 工具栏上的 表单控件工具栏 按钮 屏幕出现 表单控件 工具 可以把它拖放到表单适当的位置进行设计 6 调色板工具栏可以设置对象的背景颜色 7 布局工具栏设置表单各控件在表单的位置 对表单进行排版和布局 8 表单生成器依据数据库表 视图等 帮助快速生成输出表单 9 自动格式可以自己定义并套用表单的样式 表单控件表单控件的大致分类1 按与数据环境的关系分 与数据环境无关的控件 如 标签 Label 图象 Image 线条 Line 计时器 Timer 等 与数据环境有关的控件 如 文本框 Text 组合框 Combo 列表框 List 编辑框 Edit 表格 Grid 等 2 按控制对象分 设置自身属性 不激发事件的控件 如 标签 Label 图象 Image 文本框 Text 组合框 Combo 列表框 List 编辑框 Edit 等 控制其他对象属性 激发事件的控件 如 命令按钮 command 复选按钮 Check 单选按钮 Option 计时器 Timer 等 表单控件的大致功能 显示输出数据库内部及外部信息 设置人机交互环境 为用户提供输入界面 美化修饰屏幕及窗口 为用户设置功能 内容选择 触发事件动作 激活程序运行和操作 表单制作步骤 1 考虑好表单需实现的功能2 依据表单实现的功能选择需添加的控件和数据源 3 为各控件进行配置和整体布局4 设置各控件的基本属性5 为激发事件的控件编制代码6 试运行并修改表单后保存结合表单制作实例介绍几个常用控件及其属性和代码 标签 图象 命令按钮及其代码的设置1 设置表单标题标签Caption 学生信息管理系统 设计标签的长宽高 字体大小 颜色 背景色等格式属性 2 给表单添加背景和图片Picture 路径 图片文件名设计图片的长宽高等格式属性 注意 为表单添加背景图片和在表单中插入图片Image的区别 3 向表单添加命令控件 或添加命令按钮组 并修改Caption 实现 进入 关闭 表单功能 4 为命令按钮编辑代码右击COMMAND按钮 代码对象 COMMAND1过程 Click填写程序 进入 DO或 复杂情况参看示例 关闭 QUIT Thisform release5 命名保存并运行表单 操作示例1 系统初始表单 文本框 组合框 命令按钮及代码设置1 向表单中添加各控件标签 label 用户名 密码 及提示信息在 用户名 后添加组合框 combo 张三 李四 或数据表中 姓名 字段 在 密码 后添加文本框 txet 使其显示 以屏蔽密码 建立一个命令按钮 command 确认 2 分别设置各控件的属性注意对 Capition ControlSource passwordcha Font 等属性设置 操作示例2 系统安全控制表单 3 编写命令按钮的事件代码IFLOWER THISFORM TEXT1 VALUE 1111 AND LOWER THISFORM COMBO1 VALUE 张三 ORLOWER THISFORM COMBO1 VALUE 李四 THISFORM LABEL4 CAPTION 欢迎使用本系统 ELSETHISFORM LABEL4 CAPTION 口令错 请重输 THISFORM TEXT1 VALUE THISFORM COMBO1 VALUE THISFORM REFRESHENDIF 数据环境的使用1 向表单添加数据表的提示信息设置标签 label 2 使用数据环境向表单中添加表 相关联的多表 右击表单 数据环境 选择表或查询 视图 拖拽到表单中3 运行并保存表单当父表记录指针移动时查看相关表的内容 同 表单向导 建立一对多表单 操作示例3 数据表浏览表单 数据环境 文本框 编辑框 列表框 组合框及各种命令按钮的综合使用1 向表中添加标签控件 修改并设置caption及格式等属性 2 使用数据环境向表单中添加表 学生表 3 利用文本框 列表框或组合框建立用户查询列表并可选择设置文本框的ControlSource属性 相应字段名 如 姓名标签处 设定属性 Controlsource 学生 姓名 设置列表框或组合框的Rowsource和Rowsourcetype等属性 操作示例4 数据查询表单 设定属性 rowsourcetype 6 字段 或设定属性 rowsourcetype 1 值 如 设定属性 rowsource 学生 姓名 若设定属性 rowsource 为某类型 如 政治面貌或年级等时 注意应使字段为唯一索引 设定属性 style 0 下拉组合框 或 style 2 下拉列表框 4 设置各种命令按钮及事件代码查询结果显示按钮对象 COMMAND过程 Click填写程序 IFEMPTY THISFORM COMBO1 VALUE MESSAGEBOX 请输入姓名 48 0 0 信息窗口 THISFORM COMMAND1 CLICKELSESELE学生SETFILTERTO姓名 XMTHISFORM txt姓名 CONTROLSOURCE 学生 姓名 THISFORM txt姓名 REFRESHTHISFORM txt姓名 SETFOCUSTHISFORM REFRESHTHIS ENABLED F THISFORM COMMAND1 ENABLED T ENDIF 记录指针移动按钮对象 Commandgroup过程 Click填写程序 DOCASECASETHIS Value 1 Value属性指明单击了哪个按钮Skip 1 记录指针向前移动一个记录IfBof 记录指针在表头 则Bof 返回 T 否则返回 F GoTop 记录指针移动到第一个记录EndifThisform RefreshCASETHIS Value 2Skip1 记录指针向后移动一个记录IfEof 记录指针在表尾 则Eof 返回 T 否则返回 F GoBottom 记录指针移动到末一个记录EndifThisform RefreshENDCASE 单选按钮组对象 Optiongroup过程 Click填写程序 IFTHIS VALUE 1THISFORM RELEASEELSETHISFORM REFRESHENDIF 页框和表格的使用1 向表单中加入页框设置Pagecount数 默认值为2 分别设置每一页 Page 的标题Caption 学生 课程 成绩 2 设置数据环境 向页框中各页添加表格选择各表使用拖入方法加入表格 修改属性为 Deletemark recordmark splitbar F3 设置表格的属性Column Header Text等4 在表单中加入单选按钮控件Optiongroup Option的数目ControlSource等属性 操作示例5 分页显示多表表单 设置命令按钮及事件代码单选按钮组对象 Optiongroup过程 Click填写程序 DOCASECASETHIS VALUE 1THISFORM PAGEFRAME1 ACTIVEPAGE 1CASETHIS VALUE 2THISFORM PAGEFRAME1 ACTIVEPAGE 2CASETHIS VALUE 3THISFORM PAGEFRAME1 ACTIVEPAGE 3ENDCASE 表格控件的主要属性 操作示例 修饰表单 修饰表单设置背景颜色 BackColor 255 0 0 红 防止其它窗口遮盖表单 AlwaysOntop F 表单在窗口自动对中 AutoCenter F 表单边框样式 BorderStyle 3 可调边框表单的高 宽 Height或Width 300表单的左 上边界 Left或Top 20表单是否可见 Visible T 表单窗口在运行时呈现大小 WindowsState 2 最大化调整表单布局1 使用网格定位对象 格式 对齐格线 是对象自动按网格对齐 格式 设置网格刻度 调整网格的密度 显示 网格线 是否显示网格线2 使用 显示 布局工具栏 对齐对象 1 使用 显示 Tab键次序 或工具栏上按钮 2 双击某个控件旁边的框 这个控件将在表单打开时具有最初焦点 3 按照顺序依次单击其他控件旁边的框 最后单击控件外的任何地方 或者 打开 工具 选项 表单 将TAB键次序设置方式调整为 按列表 返回1 操作示例 设置对象的操作次序 为图片设置闪烁效果为图片添加计时器控件Timer设置计时器属性 Interval 500 计时事件间隔500毫秒 1 对象 Timer过程 Init填写程序 PUBLICCC 12 对象 Timer过程 Timer填写程序 C CIFC 1THISFORM image1 visible T ELSETHISFORM image1 visible F ENDIF 操作示例 设置计时器 报表设计 除了屏幕输出外 打印报表是用户获取信息的另一条重要途径VFP提供了可视化工具 报表设计器它提供了用多种方式显示表的内容 而且不需要进行任何的编程在命令窗口输入CREATEREPORT命令根据输出内容性质的不同 系统将欲输出的内容分成了多个带区1在创建一个新报表时默认有三个带区 它们是 l 页标头 该带区的内容在每页的顶端打印一次 用来说明该列细节区的内容的 通常就是该列所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑工程项目工程完工后设备验收方案
- 混凝土浇筑工艺优化与工效提升方案
- 智算中心分布式存储系统方案
- 施工人员工伤保险与赔偿管理方案
- 水的三态课件
- 医药组织者市场购买行为分析一47课件
- 水电气安全知识培训内容课件
- 主情造意41主景塑造手法49课件
- 2025版建筑行业安全生产合作协议
- 二零二五年度第四章:跨境电商合同履行风险防范协议
- 数字经济产业组织-洞察及研究
- 2025年中国美甲贴片行业市场全景分析及前景机遇研判报告
- mcn公司管理制度
- 儿童腹痛的课件
- 会计常用的130个函数公式
- 国家保安员模拟考试题(含答案)
- 校招项目管理笔试题目及答案
- 2025年中国微功率模块电源项目投资可行性研究报告
- 《肩关节解剖学》课件
- 垫资过桥合同协议
- 2024储能参与电力市场
评论
0/150
提交评论