[IT认证]第9章-面向对象程序设计及表单设计

PPT
  • 阅读 94 次
  • 下载 0 次
  • 页数 135 页
  • 大小 723.488 KB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档40.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
[IT认证]第9章-面向对象程序设计及表单设计
可在后台配置第一页与第二页中间广告代码
[IT认证]第9章-面向对象程序设计及表单设计
可在后台配置第二页与第三页中间广告代码
[IT认证]第9章-面向对象程序设计及表单设计
可在后台配置第三页与第四页中间广告代码
[IT认证]第9章-面向对象程序设计及表单设计
[IT认证]第9章-面向对象程序设计及表单设计
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 135
  • 收藏
  • 违规举报
  • © 版权认领
下载文档40.00 元 加入VIP免费下载
文本内容

【文档说明】[IT认证]第9章-面向对象程序设计及表单设计.ppt,共(135)页,723.488 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2100.html

以下为本文档部分文字说明:

第九章面向对象程序设计及表单设计目录9.1面向对象程序设计的概念9.2VisualFoxPro中的类9.3VisualFoxPro中对象的操作9.4表单设计9.5常用表单控件9.6自定义类的创建与使用2022/11/12经济与管理学院2例:设计一个窗口,如下图所示.窗

口中包含两个文本框,用于输入数据,还有一个命令按纽,单击它可以将两个文本框中的数相加,并在等号右边显示结果.9.1面向对象程序设计的概念在VFP中,窗口叫做“表单”,表单的扩展名为.scx。2022/11/12经济与管理学院3CLICK事件代码:thisform.label3.ca

ption=alltrim(str(val(thisform.text1.value)+val(thisform.text2.value)))2022/11/12经济与管理学院49.1.1事件驱动WINDOWS程序设计主要采用的

是事件驱动的方法。事件是由事件发生者触发和控制的。程序员只能定义这些事件的执行代码,主要由用户控制事件的发生顺序。2022/11/12经济与管理学院5面向对象的理论首先把现实世界中的各种事物,划分为不同的类(Class),类是抽象的概念。类有“状态”和“行为”,“状态”是类的静态属性,但可以通

过动态的“行为”来改变。一个类的具体实例就是对象(Object)。类是抽象的,而对象是具体的。对象具有该类的状态和行为。2022/11/12经济与管理学院69.1.2对象(object)客观世界里的任何实体都可以被看作是对象。对象可以是具体的物,也可以指某些概念。从编程的角度

来看,对象是一种将数据和操作过程结合在一起的数据结构,或者是一种具有属性(数据)和方法(过程和函数)的集合体。事实上程序中的对象就是对客观世界中对象的一种抽象描述。2022/11/12经济与管理学院7一般对象具有如下属性:(1)属性(Prop

erty):属性用来表示对象的状态。在程序设计中,类或对象的“状态”或特征称为属性。属性具有属性名和属性值,通过属性名,可以访问属性值,或为属性赋值。(2)事件(Event):类或对象可能执行或发生的行为称为事件。2022/11/12经济与管理学院8

(3)事件过程(EventProcedure):即对象响应某个事件所执行的程序代码。程序代码是为处理特定的事件而编写的一段程序,也称为事件代码。面向对象的程序设计的核心思路,就是为这些事件书写程序代码,在代码中改变对象的一些属性值,并让对象做出我们所期望的反应。(4)方法(Method):又称方法

程序,是描述对象行为的过程。即指对象所固有的完成某种任务的功能,是对象能够执行的一个操作。因此,“方法”类似于面向过程程序设计中的“过程”和“函数”。VFP的一些常用方法:RELEASE:从内存中释放表单或表单集。Show:显示表单

Setfocus:为一个控件指定焦点Hide:隐藏表单、表单集和工具栏Quit:推出VFP的一个实例。2022/11/12经济与管理学院9从面向对象的理论看,“方法”与“事件”本质上是相同的。“事件”可以看成系统预先定义的空“方法”,可以在事件中调用用户定义的方法,也可以在用户自定义方法中激活特定

事件。但在VFP中,“方法”在很多情况下更基本,因为VFP预先定义了一些方法,可以在事件中调用它们,而它们一般不调用事件。2022/11/12经济与管理学院109.1.3类(class)1.概念类是对一类相似对象的性质描述,这些对象具有相同种类的属性以及方法。为了便于开发系统,面

向对象的开发工具一般都会提供很多预先定义好的类和对象,并为这些类和对象预先设置足够多的属性和事件,以及足够多的方法,供程序员自由调用。2022/11/12经济与管理学院11类属性1…方法1方法2…属性2类的结构Eg:T

EXTBOX类的一些常用属性:Alignment:设置文本的对齐方式。Fontsize:指定字体的大小。Value:文本框中的任何数据类型的值,或者字段或变量的数据类型。2022/11/12经济与管理学院122.子类与继承在面向对象的方法里,继承就是一个类可以

在另一个类的基础上建立,继承该类的所有属性和事件。被继承的类称为父类,继承父类建立的类称为子类。在子类中,不仅可以继承父类的所有特性,而且还可以增加自己的属性和方法程序。一个子类的成员一般包括:(1)从其父类继承的属性和方法;(2)由子类自己定义的属性和方法。2022/11/12经济与管理学院

13类可以实现多层次的继承关系。例如:类B继承了类A,类C又继承了类B。因此,类B既是类A的子类,也是类C的父类。在一个层次结构中,如果有一个类,所有的其他的类都是由它直接或间接派生出来的,这个类就称

为基类。2022/11/12经济与管理学院142.类的特性(1)抽象:指用语言对需要用程序解决问题的现实世界进行建模,在计算机上模拟现实世界。(2)封装:将对象的方法程序和属性包装在一起的方法,称为封装。(3

)继承:子类沿用父类特征的能力。(4)多态:是指两个相关的对象解释同一个命令,但是同一个命令产生的动作却不同。封装可以将操作对象的内部负责性与应用程序的其他部分隔离开来。Eg:当用户对一个标签对象设置CAPTION属性时,不必了解标题字符串是如何存储的。2022/1

1/12经济与管理学院159.2VisualFoxPro中的类VisualFoxPro基类是系统本身内含的,并不存放在某个类库中。用户可以基于基类生成所需要的对象,也可以扩展基类创建自己的子类。2022/11/12经济与管理学院16类名含义类名含义ActiveDoc活动文档

Label标签CheckBox复选框Line线条Column(表格)列Listbox列表框ComboBox组合框OlecontrolOLE容器控件CommandButton命令按钮OleboundcontrolOLE绑定控件CommandGroup命令按钮组OptionButt

on选项按钮Container容器类Optiongroup选项按钮组Contorl控件类Page页Custom定制PageFrame页框EditBox编辑框ProjectHook项目挂钩Form表单Separator分隔符FormSet表单集Shape图形Grid

表格Spinner微调控件Header(列)标头TextBox文本框HyperLink超级链接Timer定时器Image图象ToolBar工具栏9-1VisualFoxpro基类列表2022/11/12经济与管理学院17类的分

类:按照用类创建的对象是否可视来划分,VFP的类可分为:可视类和不可视类;按照类中能否放置其他类的对象来划分,可以分为:容器类和控件类(非容器类)2022/11/12经济与管理学院18容器类:可以包含其他对象,并且允许访问这些对象。容器类所能包含的对象见P218表9-2;控件类:可创建包含其他被保

护对象的控件对象,是用以显示数据、执行操作或使表单更易阅读的一种图形对象。可以使用“表单设计器”的“表单控件”工具栏在表单上绘制控件。VFP中常用控件见P218表9-3。2022/11/12经济与管理学院19VFP中的每一个类,都具有至少3个事件,见P21

9表9-5;所有这些基类,都至少具有4个属性,见P219表9-4。2022/11/12经济与管理学院209.3.1创建对象在程序设计中,可以使用CREATEOBJECT函数来直接生成基于某个类的对象。该函数的格式如下

:CREATEOBJECT(<类名>[,<参数1>,<参数2>,……])函数基于指定的类生成一个对象,并返回对象的引用。9.3VisualFoxPro中对象的操作2022/11/12经济与管理学院21类名可以是基类,也可以是自定义类。用CreateObject()函数创建的对象是不可见的

,可以使用下面的语句使其可见。Object.show或Object.visible=.T.2022/11/12经济与管理学院22Eg:formwelcome=createobject(“form”)formwelcome.show或:formwelcome.visi

ble=.t.2022/11/12经济与管理学院239.3.2对象访问对象属性访问以及对象方法调用的基本格式如下:<对象引用>.<对象属性><对象引用>.<对象方法>[(参数列表)]绝对引用和相对引用(后述)202

2/11/12经济与管理学院24【例9-1】基于VisualFoxPro的FORM类生成一个对象,然后访问该对象的一些属性和方法。Oform=CREATEOBJECT("Form")&生成一个空白表单Oform.show&&显示表单Ofo

rm.caption=”演示”&&修改表单的标题?”这是一个生成对象的演示程序”&&在表单上输出字符串Oform.release2022/11/12经济与管理学院259.3.3容器与控件VisualFoxPro中的类一般可分为两种类型:容器类和控件类。相应地,可分别生

成容器(对象)和控件(对象)。容器可以被认为是一种特殊的控件,它能包容其他的控件或容器。控件是一个可以以图形化的方式显示出来,并能与用户进行交互的对象,控件类不能包含其它对象。2022/11/12经济与管理学院26VFP中的所有容器对象都有与它们相关联的记

数属性和收集属性。收集属性是引用其每个被包含对象的数组,记数属性是指其包含的对象数的数值属性。每个容器的收集和记数属性根据包含在容器中的对象类型来命名,表9-2列出了容器及其相应的收集和记数属性。2022/11/12经济

与管理学院272022/11/12经济与管理学院28容器对象作为父对象,可以包含子对象,子对象如果是容器对象,还可以包含下一级子对象,形成对象的层次关系,在VFP中,对象是通过容器的层次关系来引用的。引用

分为绝对引用和相对引用。(1)绝对引用:从最高容器开始逐层向下直到某个对象为止的引用称为绝对引用。见P225例题9-42022/11/12经济与管理学院29(2)相对引用:从正在为编写事件代码的对象出发,通过逐层向高一层或低一层直到另一对象的引用称为相对引用使用相对引

用常用到表9-3所列属性或关键字。2022/11/12经济与管理学院30表9-3相对引用关键字属性或关键字引用Parent当前对象的直接容器对象This当前对象ThisForm当前对象所在的表单ThisFormSe

t当前对象所在的表单集2022/11/12经济与管理学院31【例】如果Form1中有一个命令按钮组commandgroup1,该命令按钮组有两个命令按钮:command1和command2,label1是表单form1上的一个标签控件

。如果要在命令按钮command1的事件(如单击事件)代码中修改该按钮的标题可用下列命令:this.caption=”确定”2022/11/12经济与管理学院32如果要在命令按钮command1的事件代码中修改命令按钮

command2的标题可用下列命令:thisform.Commandgroup1.command2.caption="取消"或者this.parent.command2.caption="取消"但不能写成下列命令:thisfo

rm.command2.caption="取消"2022/11/12经济与管理学院33如果要在命令按钮command1的事件代码中修改表单的标题可用下列命令:This.Parent.parent.Caption=”测试窗口”或者thisform.caption=”测试窗口”

2022/11/12经济与管理学院34FORM类TextBox类Label类CommandButton类对象Text1对象Label1对象Text2对象Label2对象Label3对象Command1对象Form1FORM类TextBox类Label类CommandBut

ton类对象Label1对象Text2对象Label2对象Label3对象Command1对象Form1FORM类TextBox类Label类CommandButton类2022/11/12经济与管理学院359.3.4事件事件是一种由系统预先定

义而由用户或系统发出的动作。事件作用于对象,对象识别事件并作出相应反应。即类或对象可能执行或发生的行为称为事件(EVENT)与方法集可以无限扩展不同,事件集是固定的,用户不能定义新的事件。2022/11/12经济与管理学院36VisualFoxPro中常用事件有:✓Load:当表单或表单集被

加载到内存中时发生的事件。✓Unload:从内存中释放表单或表单集时发生的事件。✓Init:创建对象时发生的事件。✓Destroy:从内存中释放对象时发生的事件。✓Click:鼠标左键单击对象时发生的事件。

2022/11/12经济与管理学院37✓DbClick:鼠标左键双击对象时发生的事件。✓Rightclick:鼠标右键单击对象时发生的事件。✓GotFocus:对象接收到焦点时发生的事件。✓LostFocus:对象失去焦点时发生的事件。✓KeyPress:当

用户按下或释放键时发生的事件。2022/11/12经济与管理学院38✓InteractiveChange:以交互方式改变对象的值时发生的事件。✓ProgrammaticChange:以编程方式改变对象的值时发生的事件。2022/11/12经济与

管理学院39一个常用对话框函数Messagebox()Messagebox()函数是一个与用户传送信息的内部函数,用于显示一个用户定义的对话框。它不但能给用户传递信息,同时还可以通过用户在对话框上的选择接收到用户的响应,作为继续执行程序的依据。使用格式;messagebox(显示信息[,

对话框类型[,标题条文本]])2022/11/12经济与管理学院401.对话框的显示信息messagebox()函数中的显示信息将出现在激活的对话框中,在信息字符串中若要显示多行,则可以在文本中包含回车字符(chr(13))以移动其后的信息串到对话框中的下一行。20

22/11/12经济与管理学院412.对话框的类型对话框类型参数实质上是由三部分组成:按钮类型(0~5)、图标类型(16~64)和焦点选项(0~512)。每一类只能选择一个值,将从三类中所选出的值相加在一起就是mes

sagebox()函数中对话框类型参数的值。如果省略该参数,则对话框内只能显示一个缺省的确定按钮,并将此按钮设置为缺省按钮,且无图表显示出来。2022/11/12经济与管理学院42值对话框按钮类型0只有一个确定按钮1显示确定和取消两个按钮2显示终止、重试和忽略三个按钮3显示是、否和

取消三个按钮4显示是和否两个按钮5显示重试和取消两个按钮表1按钮类型2022/11/12经济与管理学院43值对话框图标类型16显示stop图标32显示一个疑问图标48显示一个惊叹号图标64显示一个信息图标表2图标类型2

022/11/12经济与管理学院44值焦点选项0第一个按钮256第二个按钮512第三个按钮表3焦点选项2022/11/12经济与管理学院453、标题条文本(对话框标题)默认值是“MicrosoftVisualFoxpro”2022/11/12经济与管理学院

46例:?messagebox("这是对话框"+chr(13)+"中的文字",16,"这是标题")2022/11/12经济与管理学院47Messagebox()函数的返回值是整数,对应用户按了哪个按纽。返回值和按纽的对应关系如下表。返回值对应按纽返回值

对应按纽1234确定取消放弃重试567忽略是否2022/11/12经济与管理学院48例1:a=messagebox("是、否、取消按纽和问号图标",3+32)例2:b=messagebox(“重试、取消按纽和信息图标,第二个按纽为默认按纽”,5

+64+256)2022/11/12经济与管理学院499.4表单设计9.4.1表单的基本操作表单(Form)是VisualFoxPro提供的用于建立应用程序界面的最主要的工具之一。表单相当于WINDOWS应用程序的窗口表单可以属于某个项目,也可以游离于任何项目

之外,它是一个特殊的磁盘文件,其扩展名为.scx。在项目管理器中创建的表单自动隶属于该项目。2022/11/12经济与管理学院50✓使用表单向导创建简易的数据表单;1.建立表单创建表单一般有两种途径:✓设计器创建或

修改任何形式的表单。2022/11/12经济与管理学院51启动表单向导有以下四种途径:✓打开“项目管理器”,选择“文档”选项卡,从中选择“表单”。然后单击“新建”按钮。在弹出的“新建表单”对话框中单击“表单向导”按钮。✓在

系统菜单中选择【文件】|【新建】命令,或者单击工具栏上的“新建”按钮,打开“新建”对话框,在文件类型栏中选择“表单”。然后单击“向导”按钮。用表单向导设计表单:2022/11/12经济与管理学院52✓在系统菜单中选择

【工具】|【向导】|【表单】命令。✓直接单击常用工具栏上的“表单向导”图标按钮。2022/11/12经济与管理学院53启动表单设计器有三种方法:用表单设计器设计表单:✓菜单方法:若是新建表单,在系统菜单中选择【文件】|【新建】,在文件类型对话框中选择“表单”,单击“新建文件

”按钮;若是修改表单,则单击【文件】|【打开】,在打开对话框中选择要修改的表单文件名,单击“打开”按钮。2022/11/12经济与管理学院54✓命令方法:在COMMAND窗口输入如下命令:CREATEFORM<文件名>&创

建新的表单或MODIFYFORM<文件名>&打开一个已有的表单2022/11/12经济与管理学院55✓在项目管理器中,先选择文档标签,然后选择表单,单击新建按钮。若是修改表单,选择要修改的表单,单击“修改”按钮。2022/11/12经济与管理学院562.表单设计环境(1)设计器窗口“表单设计器

”窗口内包含正在设计的表单。用户可在表单窗口中可视化地添加和修改控件、改变控件布局,表单窗口只能在“表单设计器”窗口内移动。以新建方式启动表单设计器时,系统将默认为用户创建一个空白表单,如图所示部分。2022/11/12经济与管理学

院57(2)属性窗口设计表单的绝大多数工作都是在属性窗口中完成的,因此用户必须熟悉属性窗口的用法。如果在表单设计器中没有出现属性窗口,可在系统菜单中单击【显示】|【属性】,属性窗口如图所示。页框选项卡“对象”下拉列表框图属性设置框2022/11/12经济与管理学院58(3)表单控

件工具栏设计表单的主要任务就是利用“表单控件”设计交互式用户界面。“表单控件”工具栏是表单设计的主要工具。默认包含21个控件、4个辅助按钮,如图所示2022/11/12经济与管理学院59(4)表单设计器工具栏打开“表单设计器”时,主窗口中会自动出现“表单设计器”工具栏

,如图所示。2022/11/12经济与管理学院609.4.2数据环境1.打开数据环境设计器表单设计器环境下,单击“表单设计器”工具栏上的“数据环境”按钮,或选择【显示】|【数据环境】命令,即可打开“数据环境设计器”窗口,此时,系统菜单栏上将出现“数据环境”菜单。2022/

11/12经济与管理学院612.数据环境的常用属性常用的两个数据环境属性是AutoOpenTables和AutoCloseTables2022/11/12经济与管理学院623.向数据环境添加表或视图在数据环境设计器环境下,按下

列方法向数据环境添加表或视图:在系统菜单中选择【数据环境】|【添加】命令,或右键单击“数据环境设计器窗口”,然后在弹出的快捷菜单中选择【添加】命令,打开“添加表或视图”对话框,如图所示。如果数据环境原来是空

的,那么在打开数据环境设计器时,该对话框就会自动出现。选择所需表,单击“添加”2022/11/12经济与管理学院634.从数据环境中移去表或视图在“数据环境设计器”窗口中,选择要移去的表或视图,在系统菜单中选择【数据环境】|【移去】命令。也

可以用鼠标右键单击要移去的表或视图,然后在弹出的快捷菜单中选择【移去】命令。2022/11/12经济与管理学院645.在数据环境中设置关系设置关系的方法为:将主表的某个字段(作为关联表达式)拖曳到子表的相匹配的索引标记上既可。如果子表上没有与

主表字段相匹配的索引,也可以将主表字段拖动到子表的某个字段上,这时应根据系统提示确认创建索引。2022/11/12经济与管理学院65常用的关系属性有:✓RelationalExpr:用于指定基于主表的关联表达式。✓ParentAlias:用于指明主

表的别名。✓ChildAlias:用于指明子表的别名。✓ChildOrder:用于指定与关联表达式相匹配的索引。✓OneToMany:用于指明关系是否为一对多关系,该属性默认为“.F.”,如果关系为“一对多关系”,该属性一定要

设置为“.T.”。2022/11/12经济与管理学院669.4.3表单管理1.表单常用属性属性描述默认值AlwaysOnTop指定表单是否总是位于其它打开窗口之上.F.AutoCenter居中显示.F.BackColor指定表单

窗口的背景颜色255,255,255BorderStyle指定表单边框的风格。3Caption显示于表单标题栏上的文本Form1Closable决定表单的右上角的关闭按钮是否有效.T.DataSession指定表单中的表

是在全局能访问的工作区打开(设置值为1)还是在表单自己的工作区打开(设置值为2)1MaxButton确定表单右上角是否有最大化按钮.T.MixButton确定表单右上角是否有最小化按钮.T.Movable确定表单是否能移动.T.Scrollbars指定表单的滚动条类型。可取值为:0(

无),1(水平)2(垂直)3(既水平又垂直)0WindowState指定表单的状态:0(正常)1(最小化),2(最大化)0WindowType指定表单是模式表单(设置值为1)还是非模式表单(设置值为0)。在一个应用程

序中,如果运行了一个模式表单,那么在关闭该表单之前不能访问应用程序中的其他表单02022/11/12经济与管理学院672.表单常用方法(1)Relase方法将表单从内存中释放。比如表单有一个命令按钮,如果

希望单击该命令按钮时关闭表单,就可以在该命令按钮的Click事件中包含如下代码:ThisForm.Release表单运行时,用户单击表单右上角的关闭按钮,系统会自动执行Relase方法。2022/11/12经济与管理学院68(2)Re

fresh方法:刷新表单。(3)Show方法:显示表单。该方法将表单的Visible属性设置为.T.。(4)Hide方法:隐藏表单。该方法将表单的Visible属性设置为.F.。与Relase方法不同,Hide只是把表单隐藏,但并不将表单从内

存释放,之后可用Show方法重新显示表单。2022/11/12经济与管理学院693.表单常用事件(1)Init事件:在表单创建时引发。(2)Destroy事件:在表单对象释放时引发。(3)RightClick事件:用鼠标

右键单击表单时引发。2022/11/12经济与管理学院709.4.4添加新的属性和方法1.创建新属性向表单添加新属性的步骤如下:(1)在系统菜单中选择【表单】|【新建属性】命令,打开“新建属性”对话框,如图所示。

(2)在“名称”框中输入属性名称(3)有选择地在“说明”框中输入新建属性的说明信息2022/11/12经济与管理学院712.创建新方法在表单中添加新方法的步骤如下:(1)在系统菜单中选择【表单】|【新建方法程序】命令,打

开如图的“新建方法程序”对话框。(2)在“名称”框中输入方法名。(3)有选择地在“说明”框中输入新建方法的说明信息。2022/11/12经济与管理学院729.4.5运行单表1.在设计时运行表单在设计时可采用以下方法运行表单文件:✓在项目管理器窗口中,选择要运行

的表单,然后单击“运行”按钮。✓在表单设计器窗口中,在系统菜单中选择【表单】|【执行表单】命令,或单击常用工具栏上的“运行”按钮。✓在系统菜单中选择【程序】|【运行】命令,打开“运行”对话框,然后在运行对话框中选择要运行的表单文件,单击“运行

”按钮。✓在命令窗口输入命令:DOFORM<表单文件名>。2022/11/12经济与管理学院732.在程序中调用表单在程序中调用表单可用下列命令:DOFORM<表单文件名>[WITH〈实参1〉〈,实参2〉,…][TO〈变量〉][NOSH

OW]2022/11/12经济与管理学院74✓[TO〈变量〉]:用于从模式表单返回值。✓[WITH<参数列表>]:用于向表单传递参数。✓[NOSHOW]:如果包含NOSHOW关键字,表单运行时将不显示,直到将表单的Visible属性被设置为.T.,或者调用表单的Show方法。2022/1

1/12经济与管理学院75(1)将参数传递到表单如果要将参数传递到表单,可按如下操作:1)在表单的INIT事件中,用PARAMETERS定义形参:PARAMETERSparam1,param22)在表单的INIT事件

中可以直接访问参数,如果在表单的其它方法或事件中需要使用该参数,必需在表单的INIT事件中将参数保存到表单的属性或变量中。3)运行表单时,使用带WITH子句的DOFORM命令,系统会将WITH子句的实参值传递到INIT事件代码的PARAMET

ERS子句中的各形参。2022/11/12经济与管理学院76(2)从表单返回值只有模式表单可返回值。要从表单返回值可按如下操作:1)将表单的WINDOWTYPE属性设置为1,使表单成为模式表单。2)在表单的UNLOAD事件中代码中,包含一个带返回值的RETURN命令。3)运行

表单时,在DOFORM命令中包含TO关键字。2022/11/12经济与管理学院77(3)直接访问表单对象表单运行后,在其释放前可通过指向表单的变量访问表单对象及表单中所有控件对象。2022/11/12经济

与管理学院789.5常用表单控件常用控件的公共属性:name:控件的名称,它是代码中访问控件的标识(表单或表单集除外)。Fontname:字体名。Fontbold:字体样式为粗体。Fontsize:字体大小。Fontitalic:字体样式为斜体。Forecolor:前景色。2022/1

1/12经济与管理学院79Height:控件的高度Width:控件的宽度。控件的高度和控件的宽度,也可在设计时通过鼠标拖曳进行可视化调整。Visible:控件是否显示。Enable:控件运行时是否有效。如果为.T.,则表示控件有效,否则运行时控件不可使用。2022/11/12

经济与管理学院809.5.1标签(Label)控件1.标签控件的功能标签主要用于显示固定的文本信息。2.标签控件常用属性caption:指定标签的显示文本。可以在设计时设置,也可以在程序运时设置或修改。2022/11/12经济与管理学院81autosize:autosi

ze如果为真,标签在表单中的大小由caption属性中的文本长度决定,否则其大小由WIDTH和HEIGHT属性决定。forecolor:设置标题的字体颜色。backstyle:设置标签的背景是否透明,0透明,1不透明,默认为不透明。name:标签对象的名称,是程序中访问标签

对象的标识。2022/11/12经济与管理学院829.5.2文本框(TextBox)控件1.文本框控件的功能(1)用于显示或接收单行文本信息(不设置ControlSource属性),默认输入类型为字符型,最大长度为256个字符。(2)用于显示或编辑对应变量或字段的值(设置ControlSource

属性为已有变量或字段名)。2022/11/12经济与管理学院832.文本框控件常用属性ControlSource:设置文本框的数据来源。一般情况下,可以利用该属性为文本框指定一个字段或内存变量。PassWordChar:设置输入口令时显示的

字符。Readonly:确定文本框是否为只读,为“.T.”时,文本框的值不可修改。2022/11/12经济与管理学院84Value:保存文本框的当前内容,如果没有为ControlSource属性指定数据源,可以通过该属性访问文本框的内容。它的初值决定文本框中值的类型。如果为ControlSou

rce属性指定了数据源,该属性值与ControlSource属性指定的变量或字段的值相同。2022/11/12经济与管理学院859.5.3命令按钮(CommandButton)控件1.命令按钮控件功能命令按钮典型地用来启动某个事件代码、完成特定功能,

如关闭表单、移动记录指针、打印报表等。2022/11/12经济与管理学院862.命令按钮控件常用属性Default:命令按钮的Default属性默认值为.F.,如果该属性设置为.T.,在该按钮所在的表单激活的情况下,按Enter,可以激活该按钮,并执行该按钮的Clic

k事件代码。一个表单只能有一个按钮的Default属性为真。Enable:确定按钮是否有效,如果按钮的属性Enable为.F.,单击该按钮不会引发该按钮的单击事件。2022/11/12经济与管理学院87Caption:设置按钮的标题。Cancel:命令按

钮的Cancel属性默认值为.F.,如果设置为.T.,在该按钮所在的表单激活的情况下,按Esc键可以激活该按钮,并执行该按钮的Click事件代码。一个表单只能有一个按钮的Cancel属性为真。对命令按钮的使用最重要的是编写Click事件代码。2022/11/12经济

与管理学院88【例】创建一个如图所示的登录窗口,并将表单保存为FORM2。2022/11/12经济与管理学院89在确定按钮的单击事件中输入如下代码:ifthisform.text1.value="user1“

andthisform.text2.value="123456"doformmainformform2.releaseelsemessagebox("密码或用户名错误",0,"提示")endif2022/11/12经济与管理学院90在取消按钮的单击事件中输入如下代码:n

Answer=messagebox("你决定退出系统吗?",4,"提示")DOCASECASEnAnswer=6thisform.releaseCASEnAnswer=7messagebox("请输入用户名和密码",0,"提示")ENDCASE2022/11/12经济与管理学院919.5.4命令

按钮组(CommandGroup)控件1.命令按钮组功能命令按钮组是包含一组命令按钮的容器控件,用户可以单个或作为一组来操作其中的按钮。2022/11/12经济与管理学院922.命令按钮组常用属性Butto

ncount:命令按钮组中命令按钮的数目。Buttons:用于存取命令按钮组中每个命令按钮的数组,代码中可以通过该数组访问命令按钮组中的各个按钮。2022/11/12经济与管理学院93Value:默认情况下,命令按钮组中的各个按钮被自动赋予了一个编号,如1,2,3,等,

当运行表单时,一旦用户单击某个按钮,则Value将保存该按钮的编号,于是在程序中通过检测Value的值,就可以为相应的按钮编写特定的程序代码。如果在设计时,给Value赋予一个字符型数据,当运行表单时,一旦用户单击某个按钮,则Value将保存该按钮的Caption属性值。20

22/11/12经济与管理学院949.5.5编辑框(EditBox)控件1.编辑框控件的功能用于显示或编辑多行文本信息。编辑框实际上是一个完整的简单字处理器,在编辑框中能够选择、剪切、粘贴以及复制正文,可以实现自动

换行,能够有自己的垂直滚动条。2022/11/12经济与管理学院952.编辑框常用属性ControlSource:设置编辑框的数据源,一般为数据表的备注字段。Value:保存编辑框中的内容,可以通过该属性来访问编辑框中的内容。SelText:返回

用户在编辑区内选定的文本,如果没有选定任何文本,则返回空串。2022/11/12经济与管理学院96SelLength:返回用户在文本输入区中所选定字符的数目。Readonly:确定用户是否能修改编辑框中的内容。Scroolbars:指定编辑框

是否具有滚动条,当属性值为0时,编辑框没有滚动条,当属性值为2(默认值)时,编辑框包含垂直滚动条。2022/11/12经济与管理学院979.5.6复选框(CheckBox)控件1.复选框的功能用于标识一个两值状态,如真(.t.)或假(.

f.)。当处于“真”状态时,复选框内显示一个对勾,当处于“假”状态时复选框内为空白。2022/11/12经济与管理学院982.复选框常用属性Value:用来指明复选框的当前状态,如下表ControlSourc

e属性:用于指定复选框的数据源属性值说明0或.F.(默认值),未被选中1或.T.被选中>=2或null不确定,只在代码中有效2022/11/12经济与管理学院999.5.7选项组(OptionGroup)控件1.选项组控件的功能选项组又称为选项按钮组,是包含选项按钮的一种容器。一个选项组中往往

包含若干个选项按钮,但用户只能从中选择一个按钮。当用户单击某个选项按钮时,该按钮即成为被选中状态,而选项组中的其他选项按钮,不管原来是什么状态,都变为未选中状态,被选中的选项按钮中会显示一个圆点。2022/11/12经济与管理学院1002.选项组常用属性ButtonCount:指定选项组中选项按钮

的数目。Value:用于指定选项组中哪个选项按钮被选中。ControlSource:指定选项组数据源。Buttons:用于存取选项组中每个选项的数组。2022/11/12经济与管理学院101【例】命令按钮

组、选项组、复选框、编辑框应用示例,按如图设计一个表单,要求:用户单击确定按钮时,在编辑框中显示用户对选项组和复选框的选择。并将表单保存为FORM32022/11/12经济与管理学院102编写事件代码选择命令按钮组,

在属性窗口中双击“CLICKEVENT”属性,系统会打开代码编写器,在代码编写器窗口为“CLICKEVENT”事件输入如下代码:ifthisform.commandgroup1.value=2thisform.releaseelsecstr="你所

在城市"+chr(13);+thisform.optiongroup1.buttons[thisform.optiongroup1.value].caption+chr(13)cstr=cstr+"你的爱好"+chr

(13)2022/11/12经济与管理学院103ifthisform.check1.value=1cstr=cstr+thisform.check1.captionendififthisform.check2.value=1cstr=cstr+thisfor

m.check2.captionendififthisform.check3.value=1cstr=cstr+thisform.check3.captionendifthisform.edit1.value=cstrendif2022

/11/12经济与管理学院1049.5.8列表框(ListBox)控件1.列表框的功能列表框提供一组条目(数据项),用户可以从中选择一个或多个条目,一般情况下,列表框显示其中的若干条目,用户可以通过滚动条浏览其他条目。2022/11/12经济与管理学院1052.选项组常用属性RowS

ourceType属性与RowSource属性:RowSourceType属性指明列表框数据源的类型,RowSource属性指定列表框的数据源,两者常用的搭配如表2022/11/12经济与管理学院106RowSourceType属性值RowSou

rce属性0-无:在程序运行时,通过AddItem方法添加列表框条目,通过RemoveItem方法移去列表框条目无1-值:列出在RowSource属性中指定所有数据项可以是用逗号隔开的若干数据项的集合,例如,在设计时,在本属性框中输入:北京、上海、长沙、武汉5-数组:列出数组的

所有元素使用一个已定义的数组名。6-字段:列出一个字段的所有值字段名7-文件:列出指定目录的文件清单磁盘驱动器或文件目录8-结构:列出数据表的结构表名2022/11/12经济与管理学院107List属性:用以存取列表框中数据条目的字符串数组。例如,LIST[1

]代表列表框中的第一行(第一个数据项)。ListCount属性:列表框中数据条目的数目ColumnCount属性:指定列表框的列数Value属性:返回列表框中被选中的条目2022/11/12经济与管理学院108ControlSource属性:该属性在列表框中的用法与在其他控件中的用法有所不同

,在这里,用户可以通过该属性指定一个字段或变量用以保存用户从列表框中选择的结果Selected属性:该属性是一个逻辑型数组,第N个数组元素代表第N个数据项是否为选定状态MultiSelect属性:指定用户能否在列表框控件内进行多

重选定2022/11/12经济与管理学院109【例】列表框的应用:按下图设计一个表单。要求表单运行时,LIST1列表框显示STUD表的所有字段,单击左箭头按钮时,LIST1中选择的字段加入到LIST2中。2022/11/12经济与管理

学院110操作步骤:①按图7-19所示在表单中加入二个列表框、二个标签、二个命令按钮。②在表单的INIT事件中加入如下代码:thisform.list1.value=0thisform.list2.va

lue=0opendatabasestudentusestudfori=1tofcount()thisform.list1.additem(fields(i))nextclosedatabase2022/11/12经济与管理学院111③在

左箭头按钮(COMMAND1)的CLICK事件中加入如下代码:thisform.list2.addlistitem(thisform.list1.listitem[thisform.list1.value])thisform.list1.remov

eitem[thisform.list1.value]右箭头按钮(COMMAND2)的CLICK事件代码请用户自己编写。2022/11/12经济与管理学院1129.5.9组合框(comboBox)控件组合框与列表框类似,也是用于提供一组条

目供用户从中选择,组合框和和列表框的主要区别在于三点:2022/11/12经济与管理学院113✓组合框不提供多重选择的功能,没有MultiSelect属性。✓对于组合框来说,通常只有一个条目是可见的。用户可以单击组合框上的下拉箭头按钮打开条目列表,以便从

中选择。2022/11/12经济与管理学院114✓组合框有两种形式:下拉组合框(Style属性为0)和下拉列表框(Style属性为2)。对下拉组合框,用户既可以从列表中选择,也可以在编辑区输入。对下拉列表框,用户

只可从列表中选择。2022/11/12经济与管理学院1159.5.10表格(Grid)控件1.表格控件的功能:表格控件用于浏览或编辑多行多列数据2.表格控件常用属性RecordSourceType和RecordSource属性:RecordSourceType指明表格

数据源的类型,RecordSource属性指定数据的来源,它们取值及含义如表所示。2022/11/12经济与管理学院116RecordSourceType属性值RecordSource属性0-表:数据来源由RecordSource属性指定的表,该表能被自动打开表名1-别名数据来源于己打开的表表的

别名2-提示运行时,由用户根据提示选择表格数据源3-查询数据来源于查询查询文件名4-SQL语句数据来源于SQL语句SQL语句2022/11/12经济与管理学院117ColumnCount:指定表格的列数LinkMaster:用于指定表格控件中所显示的子表的父表名称ChildOrader:指定子表的

索引RelationalExpr:确定基于主表字段的关联表达式2022/11/12经济与管理学院118AllowAddNew:为真,运行时允许添加新记录,否则不能添加新记录AllowRowSizing:为真,运行时用户可改变行高。Allo

wHeaderSizing:为真,运行时用户可改变列宽。2022/11/12经济与管理学院1193.常用的列属性ControlSource:指定在列中显示的数据源。CurrentControl:指定列对

象中显示和接收数据的控件。Sparse:用于确定CurrentControl属性影响列中的所有单元格还是只影响活动单元格。注意:设计时要设置列对象的属性,首先得选择列对象,选择列对象有两种方法:①从属性窗口的对象列表中选择相应列,②右击表格,在弹出的快捷菜单中选择【编辑】命

令,这时表格进入编辑状态(表格的周围有一个粗框),用户可用鼠标单击选择列对象。2022/11/12经济与管理学院1204.常用的标头(Header)属性列标头也是一个对象,有它自己的属性、方法和事件,设计时要设置标头对象的属性,首先得选择标头对象,选择标头对象的方法与选择

列对象的方法类似。Caption属性:指定标头对象的标题文本,显示于列顶部。默认为对应字段的字段名。Alignment属性:指定标题文本在对象中显示的对齐方式。2022/11/12经济与管理学院121【例】设计如图所示表单,要求按系浏览学生信息。2022/11/12经济与

管理学院122①设计数据环境:把系别表(DEP)和学生信息表(STUD)加入数据环境,并在系别代号之间建立关系。②打开表格生成器,在“表格项”选项卡中设置要显示的字段,在“关系”选项卡设置“父表中的关键字段”为:DEP.代号,“子表中的相关素引”为:系别代号。③组合框属性设置:

RecordSourceType:6_字段,RowSource:DEP.系别。④表格属性设置:LINKMASTR:DEP,CHILDORDER:系别代号。运行表单时,在列表框中选择一个系,表格中就只显示该系的学生信息。2022/11/12经

济与管理学院1239.5.11控件操作与布局1.控件的基本操作(1)选定控件用鼠标单击控件可以选定该控件,被选定的控件四周出现8个控点(2)移动控件先选定控件,然后用鼠标将控件拖动到需要的位置上。也可用方向键对控件进行移动。2022/11/12经济与管理学院12

4(3)调整控件大小选定控件,然后拖动控件四周的某个控点可以改变控件的宽度和高度。也可以按住shift键的同时,用方向键对控件大小进行微调。2022/11/12经济与管理学院125(4)复制控件先选定控件,选择【编辑】|【复制】命令,然后选择【编辑】|【粘贴】命令,最后将复

制产生的新控件拖动到需要的位置。(5)删除控件选定不需要的控件,然后按Delete键或选择【编辑】|【剪切】命令2022/11/12经济与管理学院126表单设计实例例1.设计一个“学生”表信息输入单。要求:➢具

有只读功能(输入期间除外);➢具有随时添加记录的功能;➢可以取消当前的添加操作(删除添加的记录,但不可以删除其它记录);➢可以随时结束操作退出表单。2022/11/12经济与管理学院127操作注意事项:添加属性:由于要求对表中的添加记录可以取消(删除添加的记录,但不可以删除其它记录)。

要实现这一功能就要随时确定是否有添加操作以及添加记录的记录号,以便在事件代码中进行判断。这里我们既不用临时变量也不用公用变量,而用属性以便在整个表单或表单集中使用。2022/11/12经济与管理学院128设计步骤:一.布局和设

计表单界面➢控件的布局➢设置命令按钮字体及颜色➢设置表单背景色(BackColor)或指定表单背景图片(Picture)➢指定表单图标(Icon)2022/11/12经济与管理学院129➢设定表单运行时自动居中(AutoCenter)➢指定表单运行模式(Wi

ndowType:0-无模式;1-模式)➢指定表单运行时状态(WindowState:0-普通;1-最小化;2-最大化)2022/11/12经济与管理学院130➢指定表单的最大化按钮(MaxButton)、最小化按钮(MinButton)和关

闭按钮(Closeable)➢设置表单的显示方式(ShowWindow)(0-在屏幕中;1-在顶层表单中;2-作为顶层表单)2022/11/12经济与管理学院131二.设置数据环境将相关表添加到数据环境中三.编程实现相关功能2022/11/12经济与管理学院132例2.查询信息方法一:用

SETFILTERTO方法二:用locate方法三:用select-SQL例3.修改信息方法一:直接通过控件属性方法二:用replace命令2022/11/12经济与管理学院1339.6自定义类的创建与使用9.6.1用类设计

器创建类1.启动类设计器可以在系统菜单中选择【文件】|【新建】命令,在新建对话框中选择“类”,将打开“新建类”对话框,如图所示。2022/11/12经济与管理学院134①在“类名”文本框中输入自定义类名,

如newclass②在“派生于”组合框中输入父类的名字。③在“存储于”文本框中输入已有的或新建的类库名,如Myclass。④单击“确定”按钮2022/11/12经济与管理学院1352.在类设计器中设计类类设计器窗口类似于表单设计器窗口,也有“表单设计

器”工具栏,“表单控件”工具栏,“属性”窗口,而且所有的操作方式与表单的相应操作完全相同。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?