收藏 分享(赏)

第7章表单.ppt

上传人:scg750829 文档编号:4607300 上传时间:2019-01-04 格式:PPT 页数:96 大小:985.50KB
下载 相关 举报
第7章表单.ppt_第1页
第1页 / 共96页
第7章表单.ppt_第2页
第2页 / 共96页
第7章表单.ppt_第3页
第3页 / 共96页
第7章表单.ppt_第4页
第4页 / 共96页
第7章表单.ppt_第5页
第5页 / 共96页
点击查看更多>>
资源描述

1、1,第7章 使用表单,2,基本概念-对象,客观世界里的任何实体都可以被看作是对象。对象可以是具体的物,也可以指某些概念。,3,基本概念-属性(Property),属性是用来描述对象特性的参数。 属性是属于某一类的,不能独立于类而存在。 对象的属性在设计对象时定义在可视化编程中,每一种对象都有一组特定的属性。常见的属性有标题(Caption)、名称(Name)、背景色(BackColor)、字体大小(FontSize)、是否可见(Visible)等。通过修改或设置某些属性便能有效地控制对象的外观和操作。,4,对象属性的设置一般有两条途径:(1) 如果在程序设计时设置对象的属性,需要使用属性窗口。

2、(2) 如果要在程序运行中更改对象的属性,可以使用VFP的赋值语句,在代码中通过编程设置,格式为:表单名.对象名.属性名 属性值,5,基本概念-事件(Event),事件 事件是一种由系统预先定义而由用户或系统发出的动作。事件作用于对象,对象识别事件并作出反应。事件可以由系统引发,比如生成对象时,系统就引发一个Init事件,对象识别该事件,并执行相应的Init代码。事件也可以由用户引发,比如用户用鼠标单击程序界面上的一个命令按钮就引发一个Click事件,命令按钮识别该事件并执行相应的Click事件代码。,6,事件与方法的程序调用事件过程由事件的激发而调用其代码,也可以在运行中由程序调用其代码,而

3、方法的代码只能在运行中由程序调用。在程序中调用事件代码的格式是:表单名.对象名.事件名在程序中调用对象方法的格式是: = ( ),7,基本概念-方法,方法是描述对象行为的过程,是对当某个对象接受了某个消息(一般也将其称为调用对象的某个方法)后所采取的一系列操作的描述。 VFP的方法用于完成某种特定功能。VFP的方法也属于对象的内部函数,如添加对象(AddObject)方法、绘制矩形(Box)方法、释放表单(Release)方法等。方法被“封装”在对象之中,不同的对象具有不同的内部方法。,8,表单(Form)是应用程序的用户界面,也是进行程序设计的基础。各种图形、图象、数据等都是通过表单或表单中

4、的对象显示出来,因此表单是一个容器对象。,表单对象,9,表单有:图标、标题、最小化按钮、最大化按钮、关闭按钮、移动栏、表单体及其周围的边框,其中除了表单体之外的所有特征都可以部分或全部从表单中被删除。,表单的结构,10,VFP中表单的属性就是表单的结构特征。通过修改表单的属性可以改变表单的内在或外在的特征。常用的表单属性,见下页表。,表单的属性,11,Visual FoxPro 6.0中常用的表单属性,12,Visual FoxPro 6.0中最常用的表单事件,13,Visual FoxPro 6.0中常用的表单方法,14,创建表单,使用 “表单设计器” 创建表单打开“表单设计器”的方法有以下

5、几种:1.单击“新建”按钮或在文件菜单中选择“新建”命令,在“新建”对话框中,选中“表单”选项,单击“新建文件”按钮,进入“表单设计器”。2.打开项目管理器中,选择“文档”,选择“表单”,单击“新建” 按钮,进入“表单设计器”。3.在命令窗口输入命令 CREATE FORM 。,15,使用向导创建表单具体步骤是:单击“新建”按钮或在文件菜单中选择“新建”命令,在“新建”对话框中,选中“表单”选项,单击“向导”按钮,进入“表单设计器”的“向导”,以后按提示操作即可。,创建表单,16,修改表单,修改项目中的一个表单 在“项目管理器”窗口中,选择“文档”选项卡。 单击“表单”图标左边的加号。 选择要

6、修改的表单文件后,单击“修改”按钮。,17,修改表单,修改不属于项目中的表单1.使用菜单单击“文件”菜单的“打开”。在“打开”对话框中选择要修改的表单文件。2.使用命令在命令窗口输入命令:MODIFY FORM ,18,保存表单,在“表单设计器”中,选择“文件”菜单的“保存”或单击工具栏上的“保存”按钮。表单保存以.scx为扩展名的文件。,19,运行表单,运行表单的方法有以下几种:1.打开表单,单击右键,在快捷菜单中选择“执行表单”。2.打开表单,单击工具栏上的“运行”按钮。3.在命令窗口输入命令:DO FORM .SCX4.在程序中调用表单使用命令:DO FORM .SCX,20,Messa

7、gebox()函数Messagebox()函数是一个与用户传送信息的内部函数,用于显示一个用户定义的对话框。它不但能给用户传递信息,同时还可以通过用户在对话框上的选择接收到用户的响应,作为继续执行程序的依据。其使用的格式为:Messagebox(显示信息 ,对话框类型 ,标题条文本),21,Messagebox()函数,说明: 1.显示信息Messagebox()函数中的显示信息将出现在激活的对话框中,在信息字符串中可以包含有回车符(CHR(13)以移动其后的信息串到对话框中的下一行。对话框的高度和宽度将随着显示的文本信息的长度自动变化。,22,Messagebox()函数,说明: 2.对话框

8、类型 对话框类型参数是控制显示在对话框上的按钮和图标的种类和数目,以及焦点选项(默认的输入焦点)的按钮。 对话框类型参数由三部分组成:按钮类型、图标类型和焦点选项,如下表所示。,23,Messagebox()函数,按钮类型: 值 对话框按钮类型1 只有一个确定按钮2 显示确定和取消两个按钮3 显示终止、重试和忽略三个按钮4 显示是、否和取消三个按钮5 显示重试和取消两个按钮,24,Messagebox()函数,图标类型 : 值 对话框图标类型 16 显示Stop图标 32 显示一个问号图标 48 显示一个惊叹号图标 64 显示一个信息图标,25,Messagebox()函数,焦点选项 : 值

9、焦点选项值 0 第一个按钮 256 第二个按钮 512 第三个按钮,26,Messagebox()函数,3.对话框标题条文本为标题条文本指定标题信息。如果缺省,对话框的标题条为“Microsoft Visual FoxPro”信息。,27,Messagebox()函数,4.对话框返回值信息当用户从对话框中选择某一按钮后,Messagebox()函数返回一个值,表示某个按钮被选中,其返回值与按钮的关系如下表所示。当有取消按钮的对话框中,用户按ESC键退出对话框与选择取消按钮退出对话框的作用一样,返回一个数值2。,28,Messagebox()函数,Messagebox()返回值 说 明1 选确定

10、按钮2 选取消按钮3 选终止按钮4 选重试按钮5 选忽略按钮6 选是按钮7 选否按钮,29,Messagebox()函数,例:下面的程序显示一个自定义对话框,如下图所示。,30,Messagebox()函数,cMessageTitle=“我的应用“ cMessageText=“记录没发现,是否继续?“ ntype=4+32+256 answer=messagebox(cMessageText,ntype,cMessageTitle) do casecase answer=6wait window “你选择了 是 按钮“case answer=7wait window “你选择了 否 按钮” e

11、ndcase,31,给表单添加数据环境 1.打开表单,单击右键,在快捷菜单中选择“数据环境”。 2.在“打开”对话框中选择表,关闭对话框。,32,在表单中添加控件 1.文件新建表单打开“表单设计器” 2. 打开“表单控件”工具栏,从中选择所需要的控件,然后在表单中单击鼠标或按住左键拖动鼠标。 3. 设置控件属性 4. 定义控件的事件和方法 5. 保存表单 6. 运行表单,表单控件,33,标签控件(Label),Caption属性指定标签的标题文本。很多控件具有Caption属性,如表单、文本框、命令按钮等。 Alignment属性指标题文本在控件中显示的对齐方式。 设置值 说 明0 默认值(左

12、对齐)1 右对齐2 居中 还有字体、字号、背景等属性。,34,文本框控件(Text),用文本框控件可以在内存变量、数组元素或非备注型字段中输入或编辑数据。ContronSource属性利用该属性为文本框指定一个字段或内存变量。Value属性返回文本框的当前内容。该属性与ContronSource属性指定的字段或内存变量具有相同的数据和类型。,35,文本框控件(Text),PasswordChar属性 指定文本框控件内是显示用户输入的字符还是显示占位符,指定用作占位符的字符。设计登录口令时经常用到(占位符用“*”)。 InputMask属性 指定在一个文本框中如何输入和显示数据。,36,命令按钮

13、控件(Command),命令按钮用来启动某个事件代码、完成特定功能。Default属性和Cancel属性Default属性值为.T.时命令按钮为“确认”按钮,Default属性默认值为.F.。Cancel属性值为.T.时命令按钮为“取消”按钮,Cancel属性默认值为.F.。,37,命令按钮控件(Command),Enabled属性指定表单或控件能否响应用户引发的事件。默认值为.T.。Visible属性指定对象是否可见。在表单设计器中,默认值为.T.,即对象是可见的。在程序代码中,默认值为.F.,即对象是隐藏的。,38,【例1】创建一个输入口令的表单,用户名为“COMPUTER”口令设定为“S

14、OFTWARE”。(口令表单.SCX) 1.表单Form1如图所示:,39,Label1:Caption属性为用户名; Label2:Caption属性为口 令; Text1:用户输入用户名; Text2:用于接受用户输入的口令,当口令三次输入错误时,处于禁用状态;而且当用户输入口令时,其中的值以“*”显示,应将文本框的Passwordchar的属性设置为 * 。,40,Command1:当单击该按钮时,检查用户输入口令的正确性以及输入的次数, 当口令三次输入错误时,处于禁用状态;其Caption属性为“确定”。 Command2:其Caption属性为“关闭”。当单击该按钮时,将关闭该表单。

15、 2.写出以下事件的代码: 表单的ACTIVETE事件代码: Command1-Click事件代码: Command2-Click事件代码:,41,表单的ACTIVETE事件代码: Thisform.Text1.SetFocus PUBLIC N N=0,Command2-Click事件代码:Thisform. RELEASE,42,Command1-Click事件代码: A=Thisform.Text1.Value B= Thisform.Text2.Value IF A=“COMPUTER”AND B=“SOFTWARE“messagebox(“欢迎使用本系统!“) ELSEN=N+1me

16、ssagebox(“口令错,请重新输入口令!“),43,Command1-Click事件代码:messagebox(“口令错,请重新输入口令!“)Thisform.Text1.Value=“Thisform.Text1.SETFOCUSIF N=3messagebox(“对不起,您无权使用本系统!“)Thisform.Text1.ENABLED=.F.Thisform.COMMAND1.ENABLED=.F.ENDIF ENDIF,44,【例2】创建一个表单,用于显示XS.DBF的记录数据,要求: 一屏显示一条记录; 提供如下命令按钮: 上一条、下一条、第一条、最后一条、返回 工号、姓名两项采

17、用突出颜色显示; 表单标题为“学生基本信息表”; 按“返回”按钮则结束。,45,46,1.创建表单 2.添加控件5个标签,5个文本,5个命令按钮 3.设置数据环境(XS.DBF) 4.设置控件的属性5个标签:caption属性分别为5个字段名的汉字名称5个文本:controlsource属性分别为XS.DBF的5个字段名5个命令按钮:分别为上一条、下一条、第一条、最后一条、返回 5. 编写5个命令按钮的代码:,47,上一条Click事件代码: SKIP 1 IF BOF()MESSAGEBOX(“已经到达文件头”) ENDIF THISFORM.REFRESH,下一条Click事件代码: SK

18、IP IF EOF()MESSAGEBOX(“已经到达文件尾”) ENDIF THISFORM.REFRESH,48,第一条Click事件代码: GO TOP THISFORM.REFRESH,最后一条Click事件代码: GO BOTTOM THISFORM.REFRESH返回Click事件代码: THISFORM.RELEASE,49,单选按钮控件(OptionGroup),单选按钮又称为选项按钮组,是包含选项按钮的一种容器。一个单选按钮中可以包含若干个选项按钮,但用户只能从中选择一个按钮。 ButtonCount属性用来指定选项组中选项按钮的数目,默认为2。 Value属性用来指定选项组

19、中哪个选项按钮被选中。该属性值的类型可以是数值型的,也可以是字符型的。,50,单选按钮控件(OptionGroup),ControlSource属性指明与选项组建立联系的数据源。作为选项组数据源的字段变量或内存变量,其类型可以是字符型或数值型。 Buttons属性用于存取选项组中每个按钮的数组。,51,复选框控件(Check),一个复选框用于标记一个两值状态,如真(.T.)和假(.F.)当处于“真”状态时,复选框内显示一个“”,否则,复选框内为空白。 Caption属性 用来指定显示在复选框旁边的文字。 ControlSource属性 指名与复选框建立联系的数据源。作为数据源的字段变量或内存变

20、量,其类型可以是逻辑型或数值型。,52,复选框控件(Check), Value属性 用来指明复选框的当前状态。复选框的Value属性值的设置有三种情况: 属性值 说 明 0或.F. (默认值),未被选中 1或.T. 被选中 2或null 不确定,只在代码中有效,53,【例3】设置一个简单的表单如图所示(单选复选框表单1.SCX)。,54,列表框控件(List),列表框提供一组条目(数据项),用户可以从中选择一个或多个。一般情况下,列表框显示其中的若干条目,用户可以通过滚动条浏览其他条目。RowSourceType属性与RowSource属性RowSourceType属性指明列表框中条目数据源的

21、类型,RowSourceType属性的取值范围及含义见表8-2所示。RowSource属性指明列表框的条目数据源。,55,属性值 说 明0 无(默认值)1 值。通过RowSource属性手工指定具体的列表框条目2 别名。将表中的字段值作为列表框的条目3 SQL语句。将SQL SELECT语句的执行结果作为列表框的条目数据源。4 查询(.qpr)。将.qpr文件执行产生的结果作为列表框的条目数据源。,表8-2,56,属性值 说 明5 数组。将数组中的内容作为列表框条目的数据源。6 字段。将表中的一个或几个字段作为列表框条目的数据源。7 文件。将某个驱动器和目录下的文件作为列表框条目的数据源。8

22、结构。将表中的字段名作为列表框的条目,由RowSource属性指明表。9 弹出式菜单。将弹出式菜单作为列表框条目的数据源。,表8-2,57,列表框控件(List),List属性 用以存取列表框中数据条目的字符串数组。 ListCount属性 指明列表框中数据条目的数目。 ColumnCount属性 指定列表框的列数。,58,列表框控件(List),Value属性 返回列表框中被选中的条目。 ControlSource属性 指定一个字段或变量用以保存用户从列表框中选择的结果。,59,【例4】创建一个表单,根据学号查询学生成绩E”。(列表框.SCX)。表单如下图所示:,60,建立界面 选择新建表单

23、,进入表单设计器,在表单添加1个列表框, 5个标签控件Label1-Label5,3个文本框控件Text1-Text3,和一个命令按钮Command1。 数据环境为CJ.DBF 设置控件的属性 对象 属性 属性值 说明 Command1 Caption 关闭 按钮的标题 Label1 Caption 学号: Label2 Caption 成绩: Label3 Caption C语言: Label4 Caption 数据库: Label5 Caption 英语:,61,Text1: Controlsource CJ.DBF的CYY字段名 Text2: Controlsource CJ.DBF的S

24、JK字段名 Text3: Controlsource CJ.DBF的YY字段名 List1 RowSourceType 6字段RowSource CJ.XH 编写程序代码 命令按钮Command1的Click事件代码:thisform.release 列表框List1的Click事件代码:thisform.refresh,62,例5:创建如下表单,其功能是选择列表框1中的数据项,单击中间相应按钮就会在列表框2中添加或删除。,63,1.创建表单,添加控件 2.设置数据环境为XS.DBF 3.设置控件的属性 LIST1: RowSourceType=6 RowSource为XS表的XM字段,64,

25、4.编写命令按钮的代码 : for i=1 to thisform.list1.listcount if thisform.list1.selected(i) thisform.list2.additem(thisform.list1.list(i) endif endfor,65,4.编写命令按钮的代码 : thisform.list2.clear for i=1 to thisform.list1.listcount thisform.list2.additem(thisform.list1.list(i) endfor,66,4.编写命令按钮的代码 : for i=1 to thisfo

26、rm.list1.listcount if thisform.list2.selected(i) thisform.list2.removeitem(i) endif endfor,67,4.编写命令按钮的代码 : thisform.list2.clear,68,组合框控件(Combo),组合框与列表框类似,也是用于提供一组条目供用户选择。上面介绍的有关列表框的属性,组合框同样具有,并且具有相似的含义和用法。它们的主要区别有:,69,组合框只显示一个选项,用户可以输入一个值或单击组合框的向下箭头来翻滚到附加的选项。 组合框不提供多重选择的功能。 组合框有两种形式:下拉组合框和下拉列表框。通过设

27、置Style属性可选择想要的形式。属性值 说 明0 下拉组合框。用户即可以从列表中选择,也可以在编辑区内输入。2 下拉列表框。用户只能从列表中选择。,组合框控件(Combo),70,【例6】创建如下图所示的表单,用来对学生表XS.DBF进行查询或统计。(组合框表单.SCX),71,1.创建表单 2.添加控件1个标签,1个组合框,3个命令按钮 3.设置数据环境(XS.DBF) 4.设置控件的属性标签:caption属性为输入或选择性别组合框:RowsourceType属性为5(数组)Rowsource属性:X3个命令按钮:caption属性分别为查询、统计、退出 5. 编写代码:,72,表单的I

28、nit事件代码: public X(2) X(1)=“男“ X(2)=“女“ 查询按钮的Click事件代码: A=THISFORM.COMBO1.VALUE SELE * FROM XS WHERE XB=A,73,统计按钮的Click事件代码: A=THISFORM.COMBO1.VALUE SELECT XB,COUNT(*) AS 人数 FROM XS WHERE XB=A GROUP BY XB 退出按钮的Click事件代码: THISFORM.RELEASE,74,【例7】创建如下图所示的表单,用来对学生表XS.DBF进行浏览或编辑。(组合框编辑表单1.SCX),75,1.创建表单

29、2.添加控件 2个标签, 1个文本框, 1个组合框,4个命令按钮 3.设置数据环境: XS.DBF 4.设置控件的属性标签1: caption属性为姓名:标签2:caption属性为性别:,76,组合框:RowsourceType属性为1(值)Rowsource属性:男,女Controlsource属性:XS.xbReadOnly属性:.T.文本框: Controlsource属性:XS.xm ReadOnly属性:.T. 4个命令按钮:caption属性分别为:上一条、下一条、编辑、关闭,77,5. 编写代码: 上一条按钮的Click事件代码: Thisform.Combo1.Readonl

30、y=.T. Skip -1 Thisform.Refresh 下一条按钮的click事件代码: Thisform.Combo1.Readonly=.T. Skip Thisform.Refresh,78,编辑按钮的Click事件代码 : Thisform.Text1.Readonly=.F. Thisform.Combo1.Readonly=.F. 关闭按钮的click事件代码 : Thisform.Release,79,表格控件(Grid),RecordSourceType属性与RecordSource属性 RecordSourceType属性指明表格数据源的类型,RecordSource属

31、性指明表格的数据源。RecordSourceType属性的取值范围及含义: 属性值 说 明0 数据源为表,该表能自动打开1 默认值(数据源为已打开表的别名)2 提示。运行时由用户选择表格数据源3 查询。数据来源于查询4 SQL语句。数据来源于SQL语句,80,表格控件(Grid),ColumnCount属性 指定表格的列数。该属性的默认值为-1。 ControlSource属性 指定要在列中显示的数据源,常见的是表中的一个字段。 Caption属性 指定标头对象的标题文本,显示在列的顶部。 Alignment属性 指定标题文本在对象中显示对齐方式。其设置值如下页所示。,81,属性值 说 明 0

32、 居中靠左 1 居中靠右2 居中 3 默认值(自动)4 左上对齐5 右上对齐6 中上对齐7 左下对齐8 右下对齐9 中下对齐,表格控件(Grid),82,【例8】创建如下图所示的表单,根据输入的学号来查询学生成绩,查询结果放到表格中。(表格.SCX),83,添加控件:一个标签控件,一个文本框控件,一个表格控件,两个命令按钮。 属性设计: 表单的caption:表格 标签的caption:输入学号 命令按钮的caption:查询和关闭 表格的RecordSourceType:4-SQL说明 表格的第一至第五列的header的caption依次为:学号、姓名、C语言、数据库、英语,84,代码设计:

33、 查询按钮的click事件代码: a=ALLTRIM(THISFORM.Text1.value) b=“SELECT xs.xh,xm,cyy,sjk,yy FROM xs,cj WHERE xs.xh=cj.xh and xs.xh=a into cursor lsb“ THISFORM.Grid1.Recordsource=b,85,关闭按钮的click事件代码: CLOSE ALL THISFORM.RELEASE,86,计时器控件,计时器(Timer)控件能有规律地以一定的时间间隔激发计时器事件(Timer)而执行相应的事件代码。计时器控件在设计时显示为一个小时钟图标,而在运行时并不显

34、示在屏幕上,通常用标签来显示时间。,87,计时器Timer控件的主要属性,88,Interval(时间间隔)属性是一个非常重要的属性,表示两个计时器事件之间的时间间隔,其值以毫秒(ms)为单位,介于064767ms之间,所以最大的时间间隔约为1.5min。当Interval为0时表示屏蔽计时器。如果希望每一秒产生一个计时器事件,那么Interval属性值应设为1000,这样,每隔1000ms(即1秒)就激发计时器事件,从而执行相应的Interval事件过程。,89,【例9】创建如下图所示的欢迎界面的表单,文字从左向右移动,到达右边界时又从左向右移动。(计时器.SCX),90,添加控件:一个标签

35、控件,一个计时器控件 属性设计: 表单的caption:计时器 标签的caption:欢迎使用信息管理系统 标签的left:36 标签的top:96 标签的width:504 标签的backstyle: 0透明 计时器的Interval:50 计时器的Enabled:T,91,计时器的Timer事件代码: if thisform.label1.left+504thisform.widththisform.label1.left=8-504 else thisform.label1.left=thisform.label1.left+2 endif,92,【例10】创建如下图所示的表单。(考试表

36、单1.SCX),93,数据环境:XS.DBF 5个控件的属性: LABEL1: CAPTION 姓名: TEXT1: CONTROLSOURCE XS.XM COMMAND1: CAPTION 开始 COMMAND2: CAPTION 关闭 TIMER1: ENABLED .F.INTERVAL 1000,94,开始按钮的click事件代码: THISFORM.TIMER1.ENABLED.=T. 计时器的timer事件代码: SKIP IF EOF()GO TOP ENDIF THISFORM.REFRESH 关闭按钮的click事件代码:THISFORM.RELEASE,95,使用表单向导创建表单 文件新建表单表单向导选择表和字段 选择表单样式(标准)完成 使用表单向导创建的表单可以用来对表文件进行维护。,96,创建如下表单可以使用表单向导:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 统计图表

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报