第 6章 表单设计基础
6.1 表单向导打开向导选取对话框:在工具菜单的向导子菜单中选定表单命令。
图 6.1 向导选取对话框单表表单向导与一对多表单向导图 6.2 表单向导的字段选取图 6.6 设备维护表单图 6.8 一对多表单向导对话框的父表字段图 6.11 部门设备维护窗口
6.2 表单设计器创建和运行表单的基本步骤打开表单设计器 MODIFY FORM 〈 文件名 〉
对象操作与编码:表单设计器,数据环境设计器,表单控件工具栏保存表单运行表单:例如 DO FORM SBQ
快速创建表单:表单菜单的快速表单命令图 6.12
显示快速表单的表单设计器,
数据环境设计器,
表单控件工具栏等图 6.14 表单控件工具栏中的按钮
6.3 面向对象的程序设计方法对象控件容器属性事件方法程序图 6.16 属性窗口的组成属 性 说 明 应用于
Caption 指定对象的标题 (显示时标识对象的文本 ) 表单,标签,命令按钮等
Name 指定对象的名字 (用于在代码中引用对象 ) 任何对象
Value 指定控件当前状态 (取值 ) 文本框,列表框等
ForeColor 指定对象中的前景色 (文本和图形的颜色 ) 表单,标签,文本框,命令按钮等
BackColor 指定对象内部的背景色 表单,标签,文本框,列表框等
BackStyle 指定对象背景透明否 (透明则背景着色无效 ) 标签,文本框,图象等
BorderStyle 指定边框样式为无边框,单线框等 表单,标签,文本框等
AlwaysOnTop 是否处于其它窗口之上 (可防止遮挡 ) 表单
AutoCenter 是否在 VFP主窗口内自动居中 表单
ScaleMode 指定坐标单位 表单
Closable 标题栏中关闭按钮是否有效 表单
Controlbox 是否取消标题栏所有的按钮 表单,工具栏
MaxButton 是否有最大化按钮 表单
MinButton 是否有最小化按钮 表单
Movable 运行时表单能否移动 表单
WindowState 指定运行时是最大化还或最小化 表单
AutoCloseTables 表单释放时是否关闭表或视图,默认为,T,数据环境
AutoOpenTables 表单加载时是否打开表或视图,默认为,T,数据环境表 6.3 属性选列事 件 触 发 时 机
Load 创建对象前
Init 创建对象时
Activate 对象激活时
GotFocus 对象得到焦点时
Click 单击鼠标左键时
DblClick 双击鼠标左键时
MouseUp 释放鼠标键时
MouseDown 按下鼠标键时
KeyPress 按下并释放某键盘键时
Valid 对象失去焦点前
LostFocus 对象失去焦点时
Unload 释放对象时表 6.4 VFP部分常见事件表方法程序一例,Refresh方法程序
[Form.]Object.Refresh
功能,重画表单或控件,
并刷新所有的值。
对象引用对象引用规则
(1) 通常用以下引用关键字开头,
THISFORMSET 表示当前表单集 (表单集的概念参阅 8.1.2节 )
THISFORM 表示当前表单
THIS 表示当前对象
(2) 引用格式,引用关键字后跟一个点号,再写出被引用对象或者对象的属性,事件或方法程序。
例如:
THIS.Caption && 本对象 (表单或控件 )的 Caption属性
THISFORM.Cls && 本表单的 Cls方法程序,清除表单中的图形和文本
THISFORM.Command1.Caption
&& 本表单的 Command1命令按钮的 Caption属性
THIS.Command1.Click && 本对象的 Command1命令按钮的 Click事件
(3) 控件也可引用包含它的容器,格式为,
Control.Parent
其中 Control表示控件,Parent表示容器。
例如 THIS.Parent.Command1.Caption,表示引用本对象的容器 (例如表单 )的
Command1命令按钮的 Caption属性。
编程方式设置属性值属性值设置格式,
ObjectName.Property[=Setting]
其中 Setting为要设置的属性值。
例如,
THIS.FontBold=.T,&& 本对象文本以粗体显示
THIS.Parent.Caption = time()
&& 本对象的容器的 caption属性设置为当前时间
[例 6-4] 设计只含一个文本框控件的表单 (见图 6.17),要求逐次单击文本框的内部能轮流显示当前日期与时间,试写出设计步骤。
(1) 创建表单:往命令窗口键入命令 MODIFY FORM rqsj,使显示 rqsj表单设计器窗口。
(2)创建文本框,单击表单控件工具栏中的文本框按钮,然后单击 Form1表单窗口内某处,该处就会产生一个 Text1文本框控件。
(3) 将表单的 Caption属性改为,日期与时间,,单击表单窗口,属性窗口的组合框中便显示 Form1?在属性列表中选定 Caption属性?在文本框中输入日期与时间字样,按回车键后表单窗口的标题栏就会显示这些文字。
(4) 表单的 Load事件代码的设置,双击表单窗口打开代码编辑窗口?在对象组合框中确定表单选项,并在过程组合框中确定 Load事件选项?在列表框中输入以下代码:
PUBLIC i && Load事件在表单装入内存时触发,设置 I为公共变量
(5) 文本框的 Click事件代码编写如下,
IF i=.T,&& 变量 I用于控制轮流显示
THISFORM.TEXT1.VALUE=DATE() && 本表单的文本框的值设置为当前日期
THISFORM.TEXT1.DateFormat=12 && 日期格式设置为年月日次序
THISFORM.TEXT1.DateMark="." && 年月日间隔符设置为点号
i=.F,&& 触发 Click事件 I值就变反
ELSE
THISFORM.TEXT1.VALUE=TIME() && 本表单的文本框的值设置为当前时间
i=.T,&& 触发 Click事件 I值就变反
ENDIF