【vfp开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了vfp开源代码-第三部分_表单及其设计 - 其它资料的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
第三部分 表单及其设计1.面向对象的相关概念:1对象Object的三要素(★)属性:用来表示对象的状态,如对象位置、大小、颜色等。
方法:又称方法程序,系统事先写好的程序,用户可以修改一般都不修改如:Show 方法。
事件: 由系统预先定义,用户或系统发出的动作。
事件集固定不变,用户不能定义新的事件。
VFP 基类最小事件集包括 Init、Destroy、Error,如表 3.1 所示。
事件 事件功能 Init 对象初始化,当对象生成时引发 结束对象,当对象从内存中释放时 Destroy 引发 当方法或事件
代码出现运行错误时 Error 引发2控件:是一个可以以图形化的方式显示出来并能与用户进行交互的对象,如:命令按钮、文本框等。
控件通常被放置在容器里。
3容器:一种特殊控件,能包容其他的控件或容器,如:表单等。
VFP 常用容器如表所示: 容器 能包容的对象 表单集 表单、工具栏 任意控件以及页框、Container 对象、命令按钮组、选项按钮组、表 表单 格等对象 表格 列 列 标头和除表单集、表单、工具栏、定时器及其他列之外的任意对象 页框 页 任意控件以及 Container 对象、命令按钮组、选项按钮组、表格等对 页 象 命令按钮组 命令按钮 选项按钮组 选项按钮 Container 对象 任意空间以及页框、命令按钮组、选项按钮组、表格等对象4 类Class:类是一类相似对象的性质描述,这些对象具有相同的性质、相同种类的属性以及方法。
类可以扩展,即用户可以使用系统提供的基类创建自己的类。
用户自定义类为子类,子类可以继承其父类的所有属性与方法, 父类所作的改动也自动反映到它的所有子类上。
创建与管理表单:2. 创建、修改、运行表单1使用表单向导创建表单(★):选择向导类型:注意“表单向导”与“一对多表单向导”的区别。
选择数据:注意“一对多表单向导”的数据选择。
选择表单样式:注意“样式”选择别出错。
确定排序次序:注意“多个关键字”的排序。
保存并完成向导:注意保存“文件名”及其保存位置。
:2使用表单设计器创建表单(★)(特别重要的指令:Thisform.Release 关闭表单命令。
)①添加对象:添加控件:多个同类对象使用“复制”-“粘贴”法。
比较重要的控件有:标签、文本框、命令按钮、选项按钮组、复选框、组合框、表格等。
添加“数据环境” :不是每个表单都需要添加“数据环境” 。
②设置属性:常见属性一定要掌握。
重要属性见 2.2 常见属性。
③编写程序:注意编写程序的位置。
3表单相关的几条命令:创建表单命令:CREATE FORM 表单文件名 表单文件的扩展名为:.SCX .SCT修改表单命令:MODIFY FORM 表单文件名 运行表单命令:DO FORM NAME WITH ,…NAME:用于建立指向表单对象的变量,如果缺省,系统建立与表单文件名同名变量指向表单。
WITH:在表单 Init 事件发生时,用于将各“参数”传递给该事件
代码 PARAMETERS 子句的各参数。
3.1常用表单属性(★):表 3.3 常见表单属性 属性 描述 默认值 AlwaysOnTop 指定表单是否总是位于其他打开窗口之上 .F. AutoCenter 指定表单初始化时是否自动在
VFP 主窗口内居中显示 .F. BackColor 指明表单窗口的颜色 255255255 Caption 指定表单的标题文本 Form1 MaxButton 确定表单是否有最大化按钮 .T. MinButton 确定表单是否有最小化按钮 .T. Movable 确定表单是否能移动 .T. :表 3.4 常见对象属性2常用对象属性(★)属性 描述 属性 描述Name 对象名称 BackColor 背景颜色Caption 对象标签 ForeColor 前景颜色Value 对象存放的值 FontName 字体Enabled 是否可用 FontSize 字号Visible 是否可见 FontBold 是否粗体ReadOnly 是否只读 FontItalic 是否斜体Width 对象宽度 ControlSource 对象的数据源Height 对象高度 RowSource 数据值源Top 对象的上边位置 RowSourceType 数据值源的类型Left 对象的左边位置 TabIndex Tab 键顺序3 创建新属性:步骤:选择“表单”菜单中的“新建属性”命令打开“新建属性”对话框;在“名称”框中输入属性名称并单击“确定”说明:新属性可以为数组,如:array10;用户自定义(创建)的属性总是属于最高层表单集如果存在或表单.调用方法:ThisFormSet.新属性名 或 ThisForm.新属性名4.常用事件(★) :Init 事件:对象建立时引发。
在该事件的
代码中,可以访问它所包含的所有控件对象。
Destroy 事件:对象释放时引发。
在该事件的
代码中,可以访问它所包含的所有控件对象。
Error 事件:出现错误时引发。
Load 事件:对象建立时引发。
引发该事件在 Init 事件之前。
Unload 事件:表单对象释放时引发。
它是表单对象最后一个事件。
GotFocus 事件:对象获得焦点时引发。
LostFocus 事件:对象获失去点时引发。
Click 事件:用鼠标单击对象时引发。
DblClick 事件:用鼠标双击对象时引发。
RighClick 事件:用鼠标右击对象时引发。
InteractiveChange 事件:用鼠标或键盘交互式改变一个控件的值时引发。
【例题】3.3:新建一个不包含任何控件的表单 myForm.scx,然后在该表单的 Load、Init、Destroy、Unload 等事件中分别输入如下表所示指令,然后执行该表单,并观察四个事件发生的时机及先后顺序。
事件
代码 事件
代码 Messagebox“ 引 发 Destroy 事Load Messagebox“引发 Load 事件! Destroy ” 件!” Messagebox“ 引 发 Unload 事Init Messagebox“引发 Init 事件!” Unload 件!”5.常用方法:Release 方法(★):从内存中清除(释放)表单。
Refresh 方法:重新绘制表单或控件,并刷新它的所有值。
Show 方法:显示表单,并使表单成为活动对象。
Hide 方法:隐藏表单。
SetFocus 方法:让控件获得焦点,使其成为活动对象。
创建新方法:创建步骤:选择“表单”菜单中的“新建方法程序”命令,打开“新建方法程序”对话框;在“名称”框中输入属性名称并单击“确定”。
说明:用户自定义(创建)的方法程序总是属于最高层表单集(如果存在)或表单。
调用方法:ThisFormSet.新方法名 或 ThisForm.新方法名6.表单程序的编写1进入编程窗口的方法:方法一:使用“显示”菜单中的“
代码”命令;方法二:在“表单设计器”工具栏中,单击“
代码窗口”;方法三:指向表单或表单中某对象,然后双击;方法四:在“属性”对话框中双击某个方法或事件。
说明:使用“属性”对话框可重新将某方法或事件重置为默认值,方法为:指向要重置的方法或事件,然后右击鼠标,然后选择“重置为默认值”命令。
2表单对象引用格式(★) :This 当前对象 如:This.Caption确定Thisform 当前表单 如:Thisform.Command1.Caption确定Thisformset 当前表单集 如:Thisformset.Form1.Command1.Caption确定Parent 包含当前对象的容器 如:This.Parent.command1.Cpation确定 【例题】3.4(★) :在命令按钮 Command1 的 Click 事件中完成如下要求: 在文本框中填写“张山” Thisform.Text1.Value张山 或 This.Parent.Parent.Text1.Value张山 将按钮 Command2 的标签修改为“取消” Thisform.CommandGroup1.Command2.Caption取消 或 This.Parent.Command2.Caption取消 或 This. Parent.Parent.CommandGroup1.Command2.Caption取消 将命令按钮自身的标签修改为“确定” Thisform.CommandGroup1.Command1.Caption确定 或 This.Caption确定 7.1在数据环境中设置关系: 如果添加到数据环境的表之间具有在数据库中设置的永久关系, 这些关系会自动添加到数据 环境中;主表与子表可以建立“没有匹配字段”的关系。
2在数据环境中编辑关系:表 3.5 数据环境的关系 属性名 含 义 属性名 含 义 指定基于主表的关联表达 指定与关联表达式相匹配 RelationalExpr ChildOrder 式 的索引 指定关系是否为一对多关 ParentAlias 指定主表的别名 OneToMany 系 ChildAlias 指定子表的别名 3数据环境的常用属性:表 3.6 数据环境的关系 属性名 含 义 默认值 AutoOpenTables 当运行或打开表单时,是否打开数据环境中的表和视图 .T. AutoCloseTables 当释放或关闭表单时,是否关闭数据环境中的表和视图 .T. 4利用数据环境向表单添加字段(★): 在数据环境中的数据表中,选中某待添加的单个或多个字段,然后直接拖向表单。
如果选择 的是单个字段,则一般添加的是单个文本框控件;如果一次选择多个字段,则添加的控件将 只能是表格(Grid)控件;如果要添加多个单一的文本框控件,则只能逐个添加。
8.1 常见表单控件的重要属性:表 3.7 常见表单控件的重要属性控件名称 属性名称 作用及功能 备注 Caption 用于指定标签的标题文本。
标签(Label) Alignment 指定标题文本在控件中的对齐方式。
用于指定“确认”按钮; 一个表单只有一个“确认” Defailt命令按钮 按钮。
(CommandButto Enabled 指定控件能否响应用户引发的事件,默认值为:.T.n) 指定对象是否可见。
该属性为.F.时,任能接受
代码访 Visible 问。
命令按钮组 ButtonCount 指定命令按钮组中命令按钮数目。
CommandGroup ControlSource 为控件指定数据源文本框 Value 存放文本框当前内容TextBox PasswordChar 指定文本框显示方式(内容或占位符) InputMask 指定如何显示数据 ControlSource 为控件指定数据源编辑框 Value 存放文本框当前内容EditBox ReadOnly 指定用户是否可以编辑框中内容 ControlSoure 指定对象的数据源复选框 Caption 指定对象的标题CheckBox Value 对象的当前状态,0—代表未被选中 1—代表被选中 ControlSource 指定绑定的数据源 ButtonCount 指定选项按钮组中按钮数目选项按钮组OptionGroup 对象的当前状态,对应被选中选项的编号或被选中项 Value 的标题 RowSourceType 数据源的类型 RowSource 指定数据源 ControlSource 指定一个用于存放结果的数据表字段或变量列表框 Value 指定控件当前被选中的条目编号或条目内容ListBox ListCount 条目的数目 ColumnCount 列数 List 用以存取框中数据条目的字符数组 RowSourceType 数据源的类型组合框 RowSource 指定数据源ComboBox ControlSource 指定一个用于存放结果的数据表字段或变量 Value 指定控件当前被选中的条目编号或条目内容 RecordSourceTy 指定数据源的类型 pe RecordSource 指定数据源的内容表格(Grid) Caption 标题文本 Alignment 对齐方式 ColumnCount 表格列数 PageCount 指定页控件的页数页框 Pages 用于存取页框中某一对象PageFrame Tabs 指定页框中是否显示页面标签栏 Interval 触发 Timer 事件的时间间隔记时器Timer Timer 用于设定执行事件触发时所执行的动作