1.76k likes | 1.89k Views
封面. 表单设计. 表单是数据库应用系统的主要工作界面。它提供给用户一个友好的操作界面,用于数据的输入、修改、浏览和查询,以及系统流程的控制。表单的设计是进行面向对象可视化编程的基础. 7.1 面向对象基本概念. 面向对象基本概念. 面向对象程序设计 ( Objec-Oriented Programming ) 是一种新的程序设计方法,是当前程序设计的主流方向。 面向对象程序设计,侧重考虑如何将一个复杂的应用程序分解成简单的对象,然后创建对象,定义每个对象的属性和行为。. 7.1.1 对象.
E N D
表单设计 表单是数据库应用系统的主要工作界面。它提供给用户一个友好的操作界面,用于数据的输入、修改、浏览和查询,以及系统流程的控制。表单的设计是进行面向对象可视化编程的基础
面向对象基本概念 面向对象程序设计(Objec-Oriented Programming)是一种新的程序设计方法,是当前程序设计的主流方向。 面向对象程序设计,侧重考虑如何将一个复杂的应用程序分解成简单的对象,然后创建对象,定义每个对象的属性和行为。
7.1.1 对象 客观世界里的任何实体都可以被看作是对象。例如,一本图书、一名学生、一辆汽车、一部手机等,都可以将其作为一个对象。 在VFP中,如图7.1所示,表单上的容器、组合框、标签、文本框、命令按钮等都是对象。甚至表单本身也是一个对象。它们具有自己的状态和行为。 对象的状态用数据来表示,称为属性。对象的行为用代码来实现,称为对象的方法。在面向对象的程序设计中,对象被定义为由属性和相关方法组成的包。
对象的属性 每个对象都有自己的属性,属性是用来表示它的外观和描述它的特征。例如,一部手机是一个对象,手机的颜色是白色的、滑盖式样、重量100克、有摄像头……就是它的属性。 在VFP中,表单的宽度是420象素,高度是300象素,标题是系统登录,背景色为灰色,就是此表单的属性。一般来说,VFP中对象的大部分属性都采用系统设置的默认值,只有部分属性需要用户设置。
对象的事件 所谓事件,是由VFP预先定义好的,能够被对象识别的、用户或系统触发的一个特定动作。 事件可以由系统触发,例如,当生成对象时,系统就引发一个Init事件,对象识别该事件并执行相应的Init事件代码。 事件也可以由用户触发,例如,当用户用鼠标单击命令按钮,命令按钮识别该事件,并执行相应的Click事件代码。
对象的事件 用户可以为对象的事件编写相应的过程。该事件一旦被触发,系统就马上执行与该事件对应的过程。待事件过程执行完毕,系统又处于等待某事件发生的状态,这就是面向对象编程的事件驱动工作方式。 如果用户没有为触发的事件编写程序,则事件发生时系统不会发生任何操作。 除了由用户或系统触发,也可以在程序中编写代码来触发对象的事件。
对象的方法 方法是附属于对象的行为和动作,是与对象相关联的过程,是对象能够执行的操作。 例如,手机的拨打、接听、照相、发短信等操作,就是系统为手机对象设定的方法。 在VFP中,方法程序是VFP为对象内定的通用过程,能使对象执行一个操作。例如,表单的Release方法就是从内存中释放表单,Refresh方法就是重画表单,刷新所有的值。
对象的方法 方法过程代码由VFP预先定义,对用户是不可见的,但用户可以在代码窗口修改方法过程。当用户在代码编辑窗口写入代码,相当于为该方法程序增加了功能,而VFP为该方法程序定义的原有功能并不清除。
例题:属性、事件、方法实例 编写程序实现以下功能:数据库中用户表如图7.2所示,该数据表有用户名和密码两个字段,记录了使用该系统的用户信息。在如图7.1所示的系统登录表单中,当用户单击“登录”按钮时,系统检查用户在组合框选择的用户名和文本框输入的密码是否正确。若密码正确,则执行表单“主界面”;若密码错误,则提示用户密码错误,并将文本框的文本清除,将光标定位到此文本框。 已知,此表单中,表单的名称为Form1,容器的名称为Container1,用户名的组合框的名称为Combo1,输入密码的文本框的名称为Text1。
例题:属性、事件、方法实例 IF 密码= ALLT(THISFORM.Container1.Text1.VALUE) &&判断文本框输入的密码与数据表中的密码是否相同 Thisform.RELEASE &&若找到符合条件的记录,调用表单的Release方法,释放此表单 DO FORM 主界面 &&运行主界面表单 ELSE MESSAGEBOX('密码错误',0+16+0) &&否则,打开对话框显示提示信息 Thisform.Container1.Text1.VALUE='' &&将Text1文本框的值的属性设为空字符,即清除文本框中输入的密码 Thisform.Container1.Text1.SETFOCUS&&调用Text1文本框的Setfocus方法,将光标定位到此控件 ENDIF
7.1.2 VFP基类简介 类是具有相同种类的属性和方法的对象的抽象。 类和对象关系密切,但并不相同。类是用来创建对象的模板,而对象是类的实例。 Visual FoxPro提供了一系列基本对象类,简称基类。用户可以在基类的基础上创建各种所需的对象,还可以在基类的基础上创建自己的子类。 Visual FoxPro的基类分成两大类:容器类和控件类。
控件类 控件通常存在一个容器内,是一个图形化的、能与用户进行交互的对象。
容器类 容器类对象是可以容纳其他对象的对象,用户可以单独地访问或处理容器中包含的任一个对象。
7.1.3 对象的引用 在面向对象的程序设计中,对某个对象的操作是通过对该对象的引用来实现的。 访问对象的属性采用<对象引用>.<属性>的形式,调用对象的方法采用<对象引用>.<方法>的形式。
对象的引用 对象的引用有两种方式:绝对引用和相对引用。 绝对引用是从外层的容器对象开始逐层向下直到某个对象为止。例如,在例7.1中,绝对引用文本框Text1的方式为:Form1.Contianer1.Text1。 相对引用是从正在为编写事件代码的对象出发,通过逐层向高一层或低一层直到要引用的对象。
对象的引用 例如,在表单中相对引用文本框Text1的方式为This. Contianer1.Text1, 在容器中相对引用文本框Text1的方式为This.Text1。在命令按钮中相对引用文本框Text1的方式为This.Parent.Text1。 当然,表单中的任何对象要相对引用文本框Text1,都可使用 Thisform. Contianer1.Text1。
表单的建立与运行 在VFP中,创建表单通常有两种途径:使用表单向导或使用表单设计器创建表单。 不管使用哪种方法建立表单,在磁盘上会产生一个扩展名为SCX的表单文件和一个扩展名为SCT的表单备注文件。
使用表单向导创建表单 表单向导是以简单的方式,引导用户快捷地建立表单。用户只需要依次回答对话框中一系列简单的问题,就可以自动地创建一个表单。表单中包含一些控件显示数据表中的数据,还提供按钮以实现对数据的浏览、查找、添加、编辑和删除等操作。
例题 在TSGL项目中使用表单向导创建一个能维护读者表的表单。
修改表单 • 通过菜单修改表单 • 通过项目管理器修改表单 • 命令修改表单 • MODIFY FORM [<表单文件名>]
运行表单 • 通过项目管理器运行表单 • 启动表单设计器后运行表单 • 通过菜单运行表单
通过命令运行表单 DO FORM <表单文件名>[WITH <参数1>[,<参数2>]] 如果有WITH短语,则在运行表单时,系统会将各实参的值传递给表单的Init事件代码中用Parameters所定义的形式参数。 表单运行时,可以通过单击“常用”工具栏的“修改表单”按钮,切换到表单设计器窗口来修改表单。
启动表单设计器 • 通过菜单建立表单 • 通过项目管理器建立表单 • 通过命令建立建立表单 • CREATE FORM [<表单文件名>]
启动表单设计器 表单设计器窗口 表单控件工具栏 表单设计器工具栏 属性窗口
设置数据环境 每一个表单都可以设置自己的数据环境。 数据环境中包含表单所需要的一些数据表或视图以及表之间的关联。 通常情况下,数据环境中的数据表或视图会随着表单的运行而打开,并随着表单的释放而关闭。 设置数据环境后,用户还可以直观地设置表单控件中与数据相关的属性。
显示 数据环境 设置数据环境 在表单设计器上按鼠标右键,选择数据环境命令 单击表单设计器工具栏上的数据环境按钮
设置数据环境 在数据环境中添加表或视图 从数据环境中移去表或视图 在数据环境中设置表的关联
例题 在TSGL项目中建立一个表单,在此表单的数据环境中添加“用户”数据表。
向表单中添加控件 在表单控件工具栏中单击需要的控件按钮,将鼠标指针移动到表单上,然后单击表单放置控件或把控件拖至所需大小即可
例题 在例7.3所建立的表单中,建立一个容器对象。在容器对象中建立两个标签,一个文本框,一个组合框和两个命令按钮。
控件的基本操作 • 选定控件 • 选定一个控件 • 选定多个控件 • 取消控件的选定 • 调整控件大小 • 移动控件 • 删除控件 • 复制控件
控件的TAB键次序 • 所谓Tab键次序,就是运行表单时按Tab键时光标经过表单中控件的顺序。表单控件的默认Tab 键次序是控件添加到表单时的次序。 • 单击“表单控件”工具栏的 “设置Tab 键次序”按钮;或选择“显示”菜单的“Tab 键次序”命令 • 鼠标指向在表单运行时应第一个具有焦点的控件,双击此控件,则此控件的Tab键顺序被设置为1。 • 按运行时所要求的Tab 键次序,依次单击其他控件。 • 单击控件外的任何地方,完成设置。
为表单和控件设置属性 在设计表单时,当用户要设置表单或控件的属性,应在属性窗口进行。
显示 属性 设置属性 在表单设计器上按鼠标右键,选择属性命令 单击表单设计器工具栏上的属性按钮
例题 在例7.4所建立的表单中,将表单的标题设为“系统登录”,宽度设为420,高度设为300。将标签1的标题设为“用户”,标签2标题设为“密码”,命令按钮1标题设为“登录”,命令按钮2标题设为“退出”。将四个控件的字号设为12,加粗,自动大小。将组合框的源数据设为来源于用户数据表的用户名字段,文本框的显示字符设为“*”。
打开代码窗口 • 在表单设计器窗口中,右击鼠标,在快捷菜单中选择“代码”命令 • 在表单或其他对象上双击鼠标 • 单击“表单设计器”工具栏的“代码窗口”按钮 • 选择“显示”菜单的“代码”命令 • 在属性窗口中选择“方法程序”选项,在“属性列表”中双击