第七章+程序设计
- 格式:doc
- 大小:172.50 KB
- 文档页数:24
第七章面向对象的程序设计本章是面向对象的程序设计。
与第五章介绍的面向过程的结构化程序设计不同,主要介绍面向对象程序设计的基础知识,包括面向对象的基本概念以及Visual FoxPro支持的面向对象的编程技术,详尽介绍了对各类控件的选择与使用方法。
在对诸如表单等各类控件对象的设计、操作上,面向对象的编程技术有自己的独特之处,但在所有对象的各种事件和方法的程序代码设计中,仍然使用到结构化的程序设计方法。
本章的主要内容是面向对象程序设计的理论基础,其程序设计的基本目标是设计出能在可视化环境下运行的应用程序窗口界面—表单。
7.1 学习提要1.学习目标与要求通过本章学习,读者应达到以下要求:⑴了解对象、类等基本概念;⑵理解对象的属性、方法和事件;⑶熟练掌握表单的基本设计、操作和应用;⑷掌握常用控件的设计与使用。
⑸熟练掌握常用事件、方法的过程代码的设计方法。
⑹了解自定义类的创建和使用方法。
2.重点与难点:⑴本章重点:对象与类以及属性、方法和事件等基本概念;表单的设计与应用;常用控件属性、事件和方法的选择与运用。
⑵本章难点:本章的重点即为本章的难点3.主要知识点⑴面向对象的概念①对象、类②属性、方法、事件③Visual FoxPro 中的基类⑵表单的创建与基本操作①表单的创建使用“窗体设计器”或“表单向导”创建表单。
②表单的修改、运行使用“窗体设计器”编辑修改表单。
使用菜单或命令方式运行表单。
③表单的属性、事件和方法表单常用属性的设置,表单的常用事件、常用方法。
④设置表单的数据环境数据环境的概念,数据环境的设置。
⑶表单常用控件①表单常用控件的基本操作控件对象的选定,移动位置,改变大小,剪切、复制与粘贴,删除,布局设置。
②常用控件对象标签控件,命令按钮与命令按钮组控件,文本框与编辑框控件,选项组和复选框控件,列表框和组合框控件,容器与表格控件,页框控件,计时器与微调控件,图像控件等。
③控件对象的常用属性设置Caption属性,Name属性,Alignment属性,ButtonCount属性,BackColor属性,BorderColor属性,BorderStyle属性,Enabled属性,ForeColor属性,InputMask属性,PasswordChar属性,Picture属性,Height属性,Width属性,Left属性,Top属性,Value属性,Visible属性,FontName属性,FontSize属性,ControlSource属性。
第二部分提高篇本部分主要介绍程序设计的基本理论与方法、SQL语句的具体应用、表单的设计与开发方法、各类菜单的设计、工具栏的创建、Visual FoxPro与WEB的结合及开发方法、Visual FoxPro向SQL SERVER2000等大中型数据库升迁的方法和步骤、Visual FoxPro的文件操作。
第七章 Visual FoxPro程序设计前面介绍的在命令窗口中输入命令或通过选择菜单来执行Visual FoxPro命令,都是交互执行方式。
除此外,还可以通过程序的方式来调用Visual FoxPro命令,以完成更为复杂的任务。
§7.1 基本知识7.1.1程序的概念学习Visual FoxPro的目的就是要使用它的命令来组织和处理数据,完成一些特定任务。
如果靠单一的在命令窗口中逐条输入命令执行,不仅繁琐,而且容易出错,特别是命令需要反复执行或所包含的命令很多时,应用交互方式根本无法完成,必须通过命令组来实现。
这里就应该采取程序方式。
程序是能够完成一定任务的命令的有序集合。
这组命令被存放在称为程序文件或命令文件中。
当程序运行时,系统会按照一定的次序自动执行包含在程序中的命令。
与命令方式相比较,主要有如下的优势:◆可以方便的利用编辑器输入、修改和保存程序。
◆可以用多种方式,多次的运行程序。
◆可以在一个程序中调用另一个程序。
【例7.1】从D:\VFP_example\xj.dbf中选出所有1984年出生的同学,并显示该年出生的同学的姓名,性别,家庭住址,入学成绩。
程序代码如下:Set talk off &&关闭人机对话Clear &&清除屏幕Use d:\VFP_example\xj.dbf &&打开数据表List xm,xb,jtzz,rxcj for year(csrq)=1984 &&显示满足条件的记录Use &&关闭数据表Set talk on &&打开人机对话【例7.2】求D:\ VFP_example\cj.dbf中的总分、平均分,并按总分排序,同时显示排序后的结果。
程序代码如下:Set talk offClearUse d:\VFP_example\cj.dbfReplace all zf with yw+sx+yy+VFP,pjf with zf/4 &&求总分和平均分Sort to d:\ VFP_example\cjpx.dbf on zf /d &&按总分排序Use d:\ VFP_example\cjpx.dbf &&打开排序后的数据表browse &&显示排序后的记录UseSet talk on注:①命令注释:以*或NOTE开关的代码行为注释行,在命令行中以&&做注释,注释行为非执行代码,不影响程序的功能。
②SET TALK ON|OFF:许多数据处理命令(如SUM、AVERAGE等,执行时会返回一些有关执行状态的信息,并且显示在Visual FoxPro的主窗口、状态栏或用户自定义的窗口里。
而SET TALK OFF禁止执行状态信息的显示,SET TALK ON允许执行状态信息的显示。
③程序代码可以写在程序文件中,还可以出现在表单设计器和类设计器的事件和方法代码窗口、报表设计器和菜单设计器的过程代码窗口中。
④在命令窗口中可像执行程序一样,一次执行多条命令,具体实现方法如下:◆在命令窗口中选择要执行的多条命令。
◆按ENTER键,或单击鼠标右键并在弹出的快捷菜单中选择【运行所选区域】7.1.2 程序的建立与执行1、程序的建立与修改(1)程序文件的建立与修改是通过调用系统内置的文本编辑器来进行。
建立程序文件的步骤:①从【文件】菜单中选择【新建】命令,在“新建”对话框中选择【程序】单选按钮,并单击【新建文件】命令按钮。
②在程序编辑窗口中输入程序内容,程序内容是一条条的命令,程序中一行只能写一条命令,每条命令都以回车键结束,当命令太长,需要分行书写时,在一行末键入续行符分号“;”,再按回车键。
这些命令不会立即执行。
③从【文件】菜单中选择【保存】命令或按CTRL+W键,然后在“另存为”对话框中指定程序文件的存放位置和文件名,并单击【保存】命令按钮。
注:程序文件默认扩展名是prg,如果指定其它扩展名,那么在打开或执行程序文件时都要显示指定扩展名。
(2)打开、修改程序文件的步骤:①从【文件】菜单中选择【打开】命令,弹出“打开”对话框中,在“文件类型”列141表框中选择“程序”,在“文件列表”框中选定要修改的文件,并单击【确定】命令按钮。
②编辑修改后,从【文件】菜单中选择【保存】命令或按CTRL+W修改键保存文件,若要放弃本次,可从【文件】菜单中选择【还命令原】命令或按ESC键。
(3)用命令方式建立、修改程序文件:格式:MODIFY COMMAND [文件路径]<文件名>作用:执行该命令时,系统首先检索磁盘文件,如果指定文件存在,则打开修改,否则系统认为是要建立一个指定了文件名的程序文件。
注:格式中的[文件路径]可以省略,如果没有给定扩展名,系统自动加上默认扩展名prg。
2、执行程序文件程序文件建好后,就可以用多种方式、多次执行它。
具体方法有:(1)菜单方式:①从【程序】菜单中选择【运行】命令,弹出“运行”对话框。
②在“文件类型”列表框中选择“程序”,在“文件列表”框中选定要运行的文件,并单击【运行】命令按钮。
(2)命令方式:格式:do [文件路径]<文件名>作用:运行指定的文件。
该命令即可在命令窗口执行,也可在某个程序文件、表单、菜单事件中出现,这样就可完成程序的调用。
当程序文件被执行时,文件中包含的命令将依次执行,直到所有的命令被执行完毕,或执行到以下命令:①CANCAL:终止程序执行,清除所有私有变量,返回命令窗口。
②DO:转去执行另一个程序。
③RETURN:结束当前程序的执行,返回到调用它的上级程序,若无上级程序则返回到命令窗口。
④QUIT:退出Visual FoxPro系统,返回到操作系统。
Visual FoxPro程序通过编译、连编,可以产生不同的目标代码文件,这些文件具有不同的扩展名,当用DO命令执行程序文件时,如果没有指定扩展名,系统将按下列顺序寻找该程序文件的源代码或某种目标代码文件执行,.exe(Visual FoxPro可执行文件) .app(Visual FoxPro的应用程序文件) .fxp(Visual FoxPro的编译文件) .prg(Visual FoxPro的源程序文件)。
注:如果用DO命令执行查询文件、菜单文件,文件名必须要加上扩展名(.qpr、.mpr)。
§7.2 顺序结构程序设计程序的基本结构是指程序中命令或语句执行的流程结构,基本结构有三种:顺序结构、选择结构、循环结构。
顺序结构是最简单的程序结构,它按命令在程序中出现的顺序依次执行。
1427.2.1输入命令1、输入命令(1)INPUT命令格式:INPUT [<字符型表达式>] TO <内存变量>作用:该命令等待用户从键盘输入数据,用户可以输入任何合法的表达式,当按回车键结束输入时,系统将表达式的值赋给指定的内存变量,程序继续执行。
注:①如果选用<字符型表达式>,它将作为提示信息,首先显示该表达式的值。
②必须输入数据,输入的数据可以是常量、变量,也可以是表达式,且以回车键结束输入。
③输入字符串时必须加定界符(如”闫秀婧”),输入逻辑型常量时要用圆点定界符(如.t.、.f.),输入日期时间型常量时要用大括号(如{^2004-12-25})。
【例7.3】从键盘上输入x的值,求Y=3×X+5的值。
程序代码:Set talk offClearInput "请输入X的值:" TO XY=3*X+5?"Y=",yset talk on【例7.4】从键盘上输入姓名,在D:\VFP_example\xj.dbf中选出该同学。
程序代码:Set talk offClearclose allInput "请输入姓名:" TO XUse d:\VFP_example\xj.dbflist xm,jg,rxcj for xm=xUseSet talk on(2)accept命令格式:accept [<字符型表达式>] TO <内存变量>作用:该命令等待用户从键盘输入字符串,当按回车键结束输入时,系统将字符串赋给指定的内存变量,程序继续执行。
注:①如果选用<字符型表达式>,它将作为提示信息,首先显示该表达式的值。
②必须输入数据,输入的数据只能是字符串,用户在输入字符串时不加定界符,且以回车键结束输入。
③如果不输入任何内容而直接按回车键,系统会把空串赋给指定的内存变量。
【例7.5】从键盘输入姓名,显示该同学的相关情况。
143程序代码:Set talk offClearclose allaccept "请输入姓名:" TO XUse d:\VFP_example\xj.dbfbrowse for xm=xUseSet talk on(3)WAIT命令格式:wait[<字符型表达式>][ TO<内存变量>][windows[AT<行>,<列>]][NOwait][clear|NOclear][timeout<数值表达式>]作用:无任何选项时,暂停程序的执行,当按任意键,继续程序执行;若选择了TO <内存变量>该命令等待用户从键盘输入值,并按回车键,系统将字符赋给指定的内存变量,并继续执行程序。
注:①如果<字符型表达式>的值为空,则不显示任何信息,没有指定<字符型表达式>,显示默认的提示信息“按任意键盘继续……”。
②<内存变量>用来保存键入的字符,若用户按回车键或单击鼠标,那么内存变量中保存的是空值,若不选TO <内存变量>,输入的字符不保留。
③默认情况,提示信息被显示在主窗口或用户当前自定义窗口,若指定了windows 子句,则会出现在一个WAIT的提示窗口,提示窗口一般位于主窗口的右上角,也可用AT 短语指定其在主窗口中的位置。
④若同时选用Nowait和windows子句,系统将不等待用户按键,直接执行。
⑤若选用Noclear子句,则不关闭提示窗口,直到用户执行下一条WAIT windows 命令或WAIT clear命令为止。
⑥ timeout子句用来设置等待时间(秒),一旦超时,继续执行。
【例7.6】弹出提示窗口,5秒钟后关闭窗口,继续执行程序。