VisualFoxpro表单设计与应用.ppt

上传人:cn****1 文档编号:568578016 上传时间:2024-07-25 格式:PPT 页数:37 大小:545.51KB
返回 下载 相关 举报
VisualFoxpro表单设计与应用.ppt_第1页
第1页 / 共37页
VisualFoxpro表单设计与应用.ppt_第2页
第2页 / 共37页
VisualFoxpro表单设计与应用.ppt_第3页
第3页 / 共37页
VisualFoxpro表单设计与应用.ppt_第4页
第4页 / 共37页
VisualFoxpro表单设计与应用.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《VisualFoxpro表单设计与应用.ppt》由会员分享,可在线阅读,更多相关《VisualFoxpro表单设计与应用.ppt(37页珍藏版)》请在金锄头文库上搜索。

1、第八章Visual FoxPro 表单设计与应用表单设计与应用 本章主要介绍Visual FoxPro面向对象的基本概念、基类的基本概念、表单的基本概念及创建和管理、表单设计器的基本操作、表单控件的基本操作等。一、面向对象的基本概念 Visual FoxPro不但继续支持面向过程的程序设计,而且在语言上进行了扩展,提供了面向对象程序设计的强大功能和更大的灵活性。 面向对象的程序设计方法与编程技术不同于标准的过程化程序设计。程序设计人员在进行面向对象的程序设计时,不再是单纯地从代码的第一行一直编到最后一行,而是考虑如何创建对象,利用对象来简化程序设计,提供代码的重用性。(一)、对象与类1、对象(

2、Object):简单地说就是一个实体。客观世界里的任何实体都可以被视为对象。对象可以是具体事件,也可以指某些概念。 A、任何对象都具有自己的对象属性、对象方法。 属性用来表示对象的状态,方法用来描述对象的行为。 B、对象生成命令格式: CREATE OBJECT(,) C、对象属性访问、对象方法调用命令格式: . .() D、对象引用的属性或关键字:属性或关键字引用注意Parent当前对象的直接容器对象对象引用: 要用对象的内部名字。This当前对象Thisform当前对象所在表单ThisFormSet当前对象所在表单集 2、类(Class):面向对象的程序设计是一种封装代码,代码可重用性和可

3、维护性都较好,其中最基本的封装代码称为类,类是对一类相似对象的性质描述,同类对象具有相同的性质相同种类的属性以及方法。3、对象与类:所有对象的属性、事件和方法程序在定义类时被指定。(1)、类的类型:基类、子类、用户自定义类、容器类、库类。 a、基类(Base Class):是Visual FoxPro预先定义的类。 基类都有自己的一套属性、方法、事件。 b、子类(Subclass):是指以某个类的定义为基础创建的新类,子类 所基于的类称为父类。 子类将继承父类的全部特征,包括对父类所做的任何修改。 c、用户自定义类(User-define Class):用户可以从基类派生出子类 ,即用户自定义

4、类。 用户可以为用户自定义类设置属性、编写代码、方法程序,也 可创建新的属性和方法程序。也可添加到表单控件工具栏中。 d、容器类(Container Classes)、控件类(Control Classes): 类也可分为容器类和控件类。 生成的对象也可分为容器对象和控件对象 e、类库(Class Library):类库可用来存储以可视方式设计的类,其文 件扩展名为.VCX。 (2)、类的特征:封装特征:封装是指将对象的方法和代码包装在一起。封装使抽象成为可能,所谓抽象是指能够忽略对象的内部细节,使用户集中精力来使用对象的特性。子类特征:用户可以在VFP所提供的基类的基础上,根据需要定义新的类

5、,即子类。一个子类可以拥有其父类的全部功能,包括属性、方法,在此基础上,可添加其他控件和功能。定义子类是实现代码重用的一条途径。首先找到与自己所需最相似的类,然后对其进行定制,生成子类继承性特征:继承表达了一种从一般到特殊的进化过程。在面向对象的方法里,继承是指在基于现有类的方法和属性,且可以使在一个类上所做的修改自动地地反映到它的所有子类当中。这种自动更新节省了用户的时间和精力。(3)、类的创建: A、“项目管理器”窗口/“类”选项卡“新建”按钮 B、“命令”窗口输入命令:CREATE CLASS(4)、类的编辑: 打开类的“属性”对话框设置相关属性(5)、类的添加: A、将类添加到工具栏“

6、表单设计器”工具栏/“查看类”按钮 B、为字段设置相关类“表设计器”/“字段”选项卡(6)、类的删除: A、删除一个类“项目管理器”窗口/“类”选项卡/“移去”按钮 B、删除类库删除.VCX文件(二)、事件模型1、事件(Event): 事件是由VFP定义的一组动作。它作用于对象,对象识别事件并做出相应的反应。是一种由系统预先定义而由用户或系统发出的动作。事件集是固定的,用户不能创建新的事件。2、编写事件代码的两条基本原则: A、容器对象不处理与所包含的控件对象相关联的事件。 B、若没有与某控件相关联的事件代码,则Visual FoxPro在该控件所在类的层次结构中逐层向上检查是否有与此事件相关

7、联的代码。 C、以上规则对选项按钮和命令按钮例外。3、VFP基类的最小事件集,不管哪个基类都包含这些事件:事件事件说明说明Init当对象生成时引发Destroy当对象从内存中释放时引发Error当方法或事件代码出现运行错误时引发 Visual FoxPro事件一般触发顺序对象事件对象#Valid数据环境BeforeOpenTables对象#LostFocus表单集Load对象$When表单Load对象$GotFocus数据环境临时表Init对象$Message数据环境Init对象$Valid对象#Init对象$LostFocus表单Init表单QueryUnload表单集Init表单Destr

8、oy表单集Activate对象*Destroy表单Activate表单Unload对象#¥When表单集Unload表单GotFocus数据环境AfterClose Tables对象#GotFocus数据环境Destroy对象#Message数据环境临时表Destroy 常用的事件和方法事件及方法触发事件发生Init创建对象时引发Destroy从内在中释放对象Error运行过程中出现错误Load在建立表单对象之前Unload在释放表单对象时GotFocus对象获得焦点Click单击左键DbClick双击左键RightClick右键单击Release方法从内存中释放表单Refresh方法刷新Sh

9、ow方法显示表单Hide方法隐藏表单SetFocus方法让控件获得焦点 4、可为事件指派代码 事件发生时,若没有与之相关联的代码,则不会发生任何操作。对于绝大多数事件,都不必编写代码,只需对少数几个关键的事件编程即可。一段代码应置于何处,是由事件发生的顺序决定的。 注意:注意: A、表单中所有控件的Init事件将在表单的Init事件之前执行,所以在表单显示以前,就需要在表单的Init事件代码中处理表单上的任意一个控件。 B、若要在列表框、组合框、复选框的值改变时执行某代码,可将它编写在Interactive Change事件中,而不是Click事件中,因为有时控件的值的改变并不触发Click事

10、件,有时控件的值没有改变,而Click事件却会发生。 C、当拖动一控件时,系统将忽略其他鼠标事件。 D、Valid和When事件的默认返回值为.T.(真)。若从When事件返回.F.(假)或0,控件将不被激活。若从Valid事件返回.F.(假)或0,则不能将焦点从控件上移走。二、表单的概念、创建与管理A、概念: 表单:是一个可以处理的对象,它有自己的属性、事件、方法。 表单生成的文件:是.SCX表单文件、.SCT表单备注文件。表单属于容器类。在表单上可以添加各种控件对象。B、作用: 每一个应用程序至少有一个表单,在应用程序中,可以利用表单来让用户查看和输入数据。 作为用户界面的设计工具,通过设

11、置表单的属性,可以使用户界面符合各种不同的要求;通过执行程序代码,使表单能够执行用户界面中所指定的任务。 1、建立表单A、建立表单步骤: a、设置用户表单的属性 b、在表单中添加所需的控件对象 c、设置控件的属性 d、书写表单及控件对象的事件驱动代码B、建立表单方法: a、使用表单向导创建表单 b、使用表单设计器创建、设计新的表单或修改已有的表单(1)、利用表单“向导”创建表单A、调用表单“向导”的方法: a、“文件”菜单/“新建”命令 b、“工具”菜单/“向导”命令 c、“常用”工具栏/“表单”按钮 d、“项目管理器”窗口/“新建”按钮B、两种表单“向导”: a、“表单向导”:创建基于一个表

12、的表单 b、“一对多表单向导”:创建基于两个具有一对多关系的表的表单注意:注意:向导步骤4当中提供的几种保存方式。“表单”向导 (2)、利用“表单设计器”、“表单生成器”创建表单A、调用“表单设计器”的方法: a、“文件”菜单/“新建”命令对话框中选择“表单”“新建文件”按钮 b、“项目管理器”当中/“文档”选项卡选择“表单”“新建”按钮 c、“命令”窗口输入命令:CREATE FORM d、“命令”窗口输入语句:=createobject(form) modify form B、调用“表单生成器”的方法: a、“表单”菜单/“快速表单”命令或快捷菜单/“生成器”命令 b、“表单设计器”工具栏

13、/“表单生成器”按钮注意:注意:使用“表单生成器”必须在“表单设计器”环境下。 2、保存表单 运行表单之前应该保存表单,否则系统提示。(1)、保存表单.SCX文件、表单备注.SCT文件 “文件”菜单/“保存”命令(2)、保存可视类库.VCX文件、可视类库备注.VCT文件 “文件”菜单/“另存为类”命令 3、修改表单 修改表单在“表单设计器”环境下进行。(1)、属于某个项目的表单 “项目管理器”窗口/“文档”选项卡“修改”按钮(2)、不属于某个项目的表单 A、“文件”菜单/“打开”命令或“常用”工具栏/“打开”按钮 B、“命令”窗口输入:MODIFY FORM 4、运行表单(1)、所谓运行表单:

14、就是根据表单文件及表单备注文件的内容产生 表单对象。(2)、运行表单的方法:A、“项目管理器”窗口/“文档”选项卡“运行”按钮B、“表单设计器”环境 “表单”菜单、快捷菜单/“执行表单”命令 “常用”工具栏按钮C、“程序”菜单/“运行”命令打开“运行”对话框选择表单运行D、“命令”窗口输入命令: DO FORM NAME WITH , LINKED NOSHOWE、在表单设计器中使用键盘快捷键 CTRL+E注意:注意:表单运行后,可以单击标准工具栏上的“修改表单”按钮,切换 到“表单设计器”环境,使表单进入设计方式。注意:注意:运行表单命令选项NAME:建立指定名字的变量,指向表单对象,否则建

15、立与表单文件 同名的变量WITH:表单运行引发Init事件时,系统将各实参的值传递给该事件代 码PARAMETERS或LPARAMETERS子句中的各形参LINKED:表单对象随着指向它的变量的清除而关闭,否则不会清除 不管有没有LINKED关键字,指向表单对象的变量并不会 随表单的关闭而清除,此时变量的取值为.NULL.值NOSHOW:是否调用表单对象的Show方法显示表单 5、表单对象的设置(1)、创建表单属性 A、对象的属性(Properties):即对象的特征、性质。 B、创建表单属性: a、 “表单”菜单/“新建属性”打开“新建属性”对话框 “名称”框中输入属性名称 “说明”框中输入

16、新建属性的说明信息 b、 用类似的方法可以向表单添加数组属性 例如:arrayprop10,2注意:注意:删除属性 “表单”菜单/“编辑属性/方法程序”命令 打开相应对话框 “移去”按钮 (2)、表单常用属性属 性描 述默认值AlwaysOnTop 指定表单是否总是位于其他打开窗口之上.F.AutoCenter指定表单初始化时是否自动在Visual FoxPro主窗口内居中显示.F.BackColor指明表单窗口的颜色255,255,255BorderStyle指定表单边框的风格。取默认值(3)时,采用系统边框,用户可以改变表单大小3Caption指明显示于表单标题栏上的文本Form1Clos

17、able指定是否可以通过单击关闭按钮或双击控制菜单框来关闭表单.T.DataSession指定表单里的表是在缺省的全局能访问的工作区打开(设置值为1),还是在表单自己的私有工作区打开(设置值为2)1MaxButton确定表单是否有最大化按钮.T.MinButton确定表单是否有最小化按钮.T.Movable确定表单是否有能够移动.T.Scrollbars指定表单的滚动条类型。可取值为:0(无)、1(水平)、2(垂直)、3(既水平又垂直)0WindowState指明表单的状态:0(正常)、1(最小化)、2(最大化)0WindowType指定表单是模式表单(设置值为1)还是非模式表单(设置值为0)

18、。在一个应用程序中,如果运行了一个模式表单,那么在关闭该表单之前不能访问应用程序中的其他界面元素。0 (3)、创建方法程序 A、方法程序又称方法(Methods):是指对象所固有完成某种任务 的功能。 B、创建方法程序: “表单”菜单/“新建方法程序”命令打开“新建方法程序”对话框 “名称”框中输入方法名 “说明”框中输入新建方法的说明信息注意:注意:删除方法 “表单”菜单/“编辑属性/方法程序”命令 打开相应对话框 “移去”按钮 (4)、编辑方法或事件代码 “表单设计器”环境,编辑方法或事件代码的步骤: “显示”菜单、快捷菜单/“代码”命令打开代码编辑窗口 “对象”框中选择方法或事件所属的对

19、象(表单或表单中的控件) “过程”框中指定需要编辑的方法或事件 在编辑区输入或修改方法或事件的代码 6、常用事件与方法(1)、Init事件: 在对象建立时引发。在表单对象的Init事件引发之前,将先引发它所包含的控件对象的Init事件,所以在表单对象的Init事件代码中能够访问它所包含的所有控件对象。(2)、Destroy事件: 在对象释放时引发。表单对象的Destroy事件在它所包含的控件对象的Destroy事件引发之前引发,所以在表单对象的Destroy事件代码中能够访问它所包含的所有控件对象。(3)、Error事件: 当对象方法或事件代码在运行过程中产生错误时引发。事件引发时,系统会把发

20、生的错误类型和错误发生的位置等参数传递给事件代码,事件代码可以据此对错误进行相应的处理。(4)、Load事件: 在表单对象建立之前引发,即运行表单时,先引发表单的Load事件,再引发表单的Init事件。 (5)、Unload事件: 在表单对象释放时引发,是表单对象释放时最后一个要引发的事件。比如在关闭包含一个命令按钮的表单时,先引发表单的Destroy事件,然后引发命令按钮的Destroy事件,最后引发表单的Unload事件。(6)、GotFocus事件: 当对象获得焦点时引发。对象可能会由于用户的动作(如鼠标单击)或代码中调用SetFocus方法而获得焦点。(7)、Click事件: 用鼠标单

21、击对象时引发。引发该事件的常见情况有: A、鼠标单击复选框、命令按钮、组合框和选项按钮。 B、在命令按钮、选项按钮或复选框获得焦点时,按空格键。 C、当表单中包含一个确认按钮(Default属性值为.T.)时,按Enter键,引发确认按钮的Click事件。 D、按控件的访问键。 E、单击表单的空白处,引发表单的Click事件。但单击表单的标题栏或窗口边界不会引发Click事件。 (8)、DblClick事件: 用鼠标双击对象时引发。(9)、RightClick事件: 用鼠标右键单击对象时引发。(10)、InteractiveChange事件: 当通过鼠标或键盘交互式改变一个控件的值时引发。(1

22、1)、Release方法: 将表单从内存中释放(清除)。比如表单有一个命令按钮,如果希望单击该命令按钮时关闭表单,就可以将该命令按钮的Click事件代码设置为ThisForm.Release。(12)、Refresh方法: 重新绘制表单或控件,并刷新它的所有值。当表单被刷新时,表单上的所有控件也都被刷新。当页框被刷新时,只有活动页被刷新。(13)、Show方法: 显示表单。该方法将表单的Visible属性设置为.T.,并使表单成为活动对象。 (14)、Hide方法: 隐藏菜单。该方法将表单的Visible属性设置为.F.。(15)、SetFocus方法: 让控件获得焦点,使其成为活动对象。如果

23、一个控件的Enabled属性值或Visible属性值为.F.,将不能获得焦点。三、表单设计器的基本操作A、“表单设计器”可以处理下列内容: a、表单中不同类型的对象 b、与表单相关联的数据 c、顶层表单或子菜单 d、能一起操作的多个表单 e、基于自定义模板的表单B、“表单设计器”启动: Visual FoxPro主窗口上出现“表单设计器”窗口、“属性”窗口、“表单控件”工具栏、“表单设计器”工具栏、“表单”菜单。 1、表单设计器环境(1)、“表单设计器”窗口: “表单设计器”窗口内含正在设计的表单的表单窗口。用户可以在表单窗口上可视化地添加和修改控件。表单窗口只能在“表单设计器”窗口内移动。(

24、2)、“属性”窗口: A、“属性”窗口包括对象框、属性设置框和属性、方法、事件列表框。 B、“属性”窗口可以通过单击“表单设计器”工具栏中“属性窗口”按钮或选择“显示”菜单中的“属性”命令打开和关闭。(3)、“表单控件”工具栏: A、包含向表单添加控件的控件按钮。 B、包含“选定对象”、“按钮锁定”、“生成器锁定”、“查看类”等4个辅助按钮。 (4)、“表单设计器”工具栏: A、“表单设计器”工具栏包含“设置Tab键次序”、“数据环境”、“属性窗口”、“代码窗口”、“表单控件工具栏”、“调色板工具栏”、“布局工具栏”、“表单生成器”、“自动格式”等按钮。 B、“表单设计器”工具栏可以通过“显示

25、”菜单中的“工具栏”命令打开和关闭。(5)、“表单”菜单: “表单”菜单中的命令主要用于创建、编辑表单或表单集。 2、控件的操作与布局(1)、控件的操作 A、选定控件 B、移动控件 C、调整控件大小 D、复制控件 E、删除控件(2)、控件的布局 A、控件的布局利用“布局”工具栏完成布局。 B、“布局”工具栏通过“表单设计器”工具栏的“布局工具栏”按钮或选择“显示”菜单“布局工具栏”命令打开或关闭。 3、设置Tab键次序 Visual FoxPro提供两种设置Tab键次序方式:交互方式、列表方式 A、选择设置方式: “工具”菜单/“选项”命令/“表单”选项卡/“Tab键次序”下拉列表框 B、设置

26、Tab键次序: a、交互方式: “显示”菜单/“Tab键次序”命令或“表单设计器”工具栏/“设置Tab 键次序”按钮打开Tab键次序盒 先双击,再单击空白处单击,确认设置;Esc放弃设置 b、列表方式: “显示”菜单/“Tab键次序”命令或“表单设计器”工具栏/“设置Tab 键次序”按钮打开Tab键次序对话框 拖动左侧移动按钮移动按钮或“按行”、“按列”按钮确认 4、数据环境的设置(1)、数据环境: 是一个对象,有自己的属性、方法、事件。包含与表单有联系的表和视图以及表之间的关系。(2)、常用属性: AutoOpenTables:当运行或打开表单时,是否打开数据环境中的表和视图。默认值为.T.

27、。 AutoCloseTables:当释放或关闭表单时,是否关闭由数据环境指定的表和视图。默认值为.T.。(3)、打开数据环境设计器: “表单设计器”环境“表单设计器”工具栏/“数据环境”按钮 “显示”菜单/“数据环境”命令 注意:系统菜单栏上出现“数据环境”菜单(4)、向数据环境添加表或视图 “数据环境”菜单/“添加”命令或“数据环境设计器”窗口快捷菜单/ “添加”命令打开“添加表或视图”对话框选择添加 (5)、从数据环境移去表或视图 “数据环境设计器”窗口选择移去的表或视图“数据环境”菜单/ “移去”命令或快捷菜单/“移去”命令(6)、在数据环境中设置关系 添加,鼠标拖动 删除,Del键(

28、7)、在数据环境中编辑关系 RelationalExpr:指定基于主表的关联表达式 ParentAlias: 指明主表的别名 ChildAlias:指明子表的别名 ChildOrder:指定与关联表达式相匹配的索引 OneToMany: 指明关系是否为一对多关系(8)、向表单添加字段 A、允许从“数据环境设计器”窗口、“项目管理器”窗口、“数据库设计器”窗口中直接将字段、表、视图拖入表单,产生相应的控件并与字段相联系。 B、“工具”菜单/“选项”命令/“字段映象”选项卡修改映象关系。四、常用表单控件的基本操作1、标签(Lable)控件: 创建一个标签控件,用于放置不希望用户改动的文本。 也称“

29、标题文本”,最多256字符。可以设置访问键“ 字母 ”。2、命令按钮(CommandButton)控件: 创建一个命令按钮控件,用于执行命令。3、命令按钮组(CommandGroup)控件: 创建一个命令按钮组控件,用于把相关的命令编成组。4、文本框(TextBox)控件: 创建一个文本框控件,用于放置单行文本,可以在其中输入或者更 改文本。5、编辑框(EditBox)控件: 创建一个编辑框控件,用于放置多行文本,可以在其中输入或者更 改文本。6、复选框(CheckBox)控件: 创建一个复选框控件,用于允许用户选择开关状态,或者显示多个 选项,可以从中选取多项。 7、选项按钮组(Option

30、Group)控件: 创建一个选项按钮组控件,用于显示多个选项,只能从其中选择 一项。8、列表框(ListBox)控件: 创建一个列表控件,用于显示供用户选择的列表项。9、组合框(ComboBox)控件: 创建一个组合框控件,用于创建一个下拉式组合框或下拉式列表框 ,可以从列表框中选择一项或者人工输入一个值。10、表格(Grid)控件: 创建一个表格控件,用于在电子表格式的网格中显示数据。11、页框(PageFrame)控件: 创建一个页框控件,用于显示控件的多个控件。12、微调(Spinner)控件: 创建一个微调控件,用于接受给定范围之内的数据输入。 13、图象(Image)控件: 创建一个

31、图象控件,用于在表单上显示图象。14、计时器(Timer)控件: 创建一个计时器控件,用于在指定时间或按指定间隔运行程序。 计时器控件在运行时不可见。15、ActiveX控件(OleControl)控件: 创建一个ActiveX控件,用于面向应用程序中添加OLE对象。16、ActiveX绑定控件(OleBoundControl)控件: 创建一个ActiveX绑定控件用于向应用程序中添加OLE对象,与 ActiveX控件不同的是,ActiveX控件绑定到一个通用字段上。17、线条(Line)控件: 创建一个线条控件,用于设计时在表单上画各种类型的线条。18、形状(Shape)控件: 创建一个形状控件,用于设计时在表单上画各种类型的形状,可 以画矩形、圆角矩形、正方形、圆角正方形、圆、椭圆。 19、容器(Container)控件: 创建一个容器控件,用于将容器控件置于当前表单上。20、分隔符(Seprater)控件: 创建一个分隔符控件,用于在工具栏的空间之间加上空格。21、超级链接(Hyperlink)控件: 创建一个超级链接控件,用于连接其他资源。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号