看实例学VFP:顶层表单(父子表单)的例子

记得以前有朋友想让他的vfp程序运行时是这个样子:没有VFP的主屏幕(_screen),运行时直接在桌面出现一个登录对话框,输入用户名及密码并验证通过之后出现软件的主界面,看起来象是用VB编写的软件,有种很酷的感觉。

VFP软件主界面的实现通常可以采用两种方式:主屏幕(_screen)或顶层表单(或者叫父子表单)。可以用顶层表单来实现上述的想法。

VFP中设置顶层表单的方法是将表单的showWindow属性设置为“2-作为顶层表单”,这也就是所谓的“父表单”了;与之想对应的,需要将“子表单”的showWindow属性设置为“1-在顶层表单中”。本文是一个关于顶层表单的小实例,算是一个“热身”吧。以后会给出用顶层表单实现软件主界面的例子,当然也会相继给出用主屏幕(_screen)实现软件主界面的例子。

本例使用数据库“数据1”中的“网站信息表”作为表单数据环境的数据源,关于该数据库的情况已经在看实例学VFP:示例数据库一文中给出。运行此例时首先启动“父表单.scx”,该表单上会显示“网站信息表”的第一条记录,如下图一;

图一

单击父表单上的“启动子表单”按钮后,子表单启动的同时该命令按钮被禁用(关闭子表单后该命令按钮被自动激活);子表单启动后,单击其上的“第一条”、“下一条”等命令按钮后,父表单会更新显示在“网站信息表”中所对应的记录,用鼠标指向子表单的标题栏可以移动子表单,但其移动的范围在父表单窗口之内,如下图2:

图二

本例制作步骤如下:

一、新建表单form1,按下表设置其属性,并将其保存为“父表单.scx”:

属性名 属性值
caption 父表单
AutoCenter .T.
width 375
height 130
showWindow 2-作为顶层表单

二、向父表单中添加一个命令按钮command1,将其caption属性值设置为“启动子表单”,适当调整大小;然后再添加一个标签(Label)控件,并按下表设置该标签的属性:

属性名 属性值
caption 父子表单关系
AutoSize .T.
FontBold .T.
FontSize 16
ForeColor 0,0,255

三、右击父表单空白处选“数据环境”命令,将“网站信息表”添加到数据环境中去。在“数据环境设计器”中拖动“网站信息表”的各个字段名到父表单上去(注意:此例不要拖动标题栏,否则生成的是一个表格),适当调整所生成的控件的大小及父表单内各个控件的位置,调整后的表单如下图:

四、为父表单及其所包含的控件添加事件代码:

(1)父表单的Unload事件:close data

(2)命令按钮command1的click事件代码:

this.enabled=.f.
do form 子表单

五、设置完父表单后,将父表单.scx关闭,然后再新建一个表单,按下表设置其属性,并将其保存为“子表单.scx”:

属性名 属性值
caption 子表单
showWindow 1-在顶层表单中

六、向子表单中添加四个命令按钮command1~command4及一个微调按钮(Spinner)控件,将四个命令按钮的caption属性依次设置为“第一条”、“上一条”、“下一条”和“最后一条”,然后将四个按钮及Spinner控件排成一线,将子表单的宽度及高度调小一些,这样看起来象个工具栏的样子,如下图:

七、按下表设置微调按钮Spinner1的属性:

属性名 属性值
SpinnerHighValue =reccount()
SpinnerLowValue 1.00

八、为子表单及其所包含的控件添加事件代码:

(1)子表单的QueryUnload事件:

父表单.command1.enabled=.t. &&作用是在子表单被关闭时激活父表单上的“启动子表单”按钮

(2)“第一条”按钮(command1)的click事件:

if bof()=.f.
 go top
endif
父表单.refresh

(3)“上一条”按钮(command2)的click事件:

if bof()=.f.
 skip -1
endif
父表单.refresh

(4)“下一条”按钮(command3)的click事件:

if eof()=.f.
  skip
endif
父表单.refresh

(5)“最后一条”按钮(command4)的click事件:

if eof()=.f.
 go bottom
endif
父表单.refresh

(6)微调按钮Spinner1的InteractiveChange事件代码:

s=this.value
goto s
父表单.refresh

九、运行“父表单.scx”,即可得到本例的效果。

本例代码在Win2003+VFP6.0环境下调试通过。

查看全套“菜鸟也学VFP”教程

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索spinner
, 控件
, 表单
, 按钮
, 命令
, 事件
, 属性
, 子控件单击
, 父控件
, 表单数据
, mysqlnode.js表单数据库
, 表单数据库
, 表单jqueryclass
jsjavascriptweb表单
,以便于您获取更多的相关知识。

时间: 2024-08-28 21:13:38

看实例学VFP:顶层表单(父子表单)的例子的相关文章

看实例学VFP:编程方式向表单添加新控件

vfp的"表单控件工具栏"包含了标签(Label).文本框(TextBox)等常用的控件类,以前我们向表单添加控件时多数都是在设计时使用该工具栏. 单击该工具栏上的某个控件图标后,即可在表单上拖动.绘制出所需要的控件.但有时我们需要的控件有可能在设计时无法确定,而是在应用程序运行时根据具体情况动态创建的,这时就需要以编程的方式,通过使用addobject()函数或creatobject()函数动态地向表单添加新控件. 本例在命令按钮的click事件代码中,使用系统基类grid动态创建出

看实例学VFP:利用多个表中的字段创建新表

本例中再来复习一下select语句中的inner join子句的知识,关于select语句请参考:select SQL 命令 或sql语言教程.本例的主要操作是在表单的init事件中完成的,在该事件中进行连接查询并将查询结果输出为一个临时表(该表包括了"人员信息表"的"姓名,性别,基本工资"3个字段以及"工资表"的"奖金,生活补助,养老保险"3个字段),最后将该表设为表格控件的数据源.本例应用到了数据环境,并使用"数

看实例学VFP:同时向两个表中添加记录

本文利用看实例学VFP:利用多个表中的字段创建新表这个实例中的知识来制作一个文本式录入表单的简单示例,通过这个表单可以同时向"数据1"数据库中的"网站信息表"和"附加信息表"这两个表中添加记录,并且对录入的数据可以选择"保存"."添加"或"撤消".这两个表的索引字段分别是"编号"和"网站编号",这两个字段的内容是完全相同的,只是分别处于两个表中,并

看实例学VFP:将查询结果输出为表或文本文件

在看实例学VFP:对查询结果进行汇总这个例子中,汇总结果是显示在表格控件中的.本文对这个例子再做进一步的改进,可以在运行时选择"数据表"或"文本文件",使之在把汇总结果显示到表格控件中的同时,将查询结果输出为"查询结果.DBF"或"查询结果.txt". 本例应用到了select语句中的Group By子句的知识,关于select语句请参考:select SQL 命令 或sql语言教程.本例应用到了数据环境,并使用"数

看实例学VFP:用顶层表单制作软件主界面

本文来制作一个顶层表单用作系统的主界面,运行界面见本文末尾,完成本例后即可以运行此表单并执行菜单里所指定的那些操作了.当然这仅仅是一个主表单而已,还需要一个系统用户登录验证表单来调用这个表单,以及主程序及连编.发布等操作,在后面的例子中会介绍这些. 本例制作步骤如下: 一.新建表单,将其caption属性值设置为"编程入门网网址管理系统",width属性值设置为600,height属性值设置为400,AutoCenter属性值设置为.t.,并将表单保存为"主表单.scx&qu

看实例学VFP:制作系统登录表单

本例制作一个简单的登录表单,系统运行时首先启动此登录表单,运行界面如下图: 输入正确的用户名及密码才会启动主表单,如下图:若连续3次输入错误的用户名及密码则会自动退出. 制作步骤如下: 一.新建表单,将表单的caption属性值设置为"系统登录",ShowWindow属性值设置为"2-作为顶层表单",width属性值设置为295,height属性值设置为100,AutoCenter属性值设置为,并将表单保存为"系统登录.scx". 二.继续设置该

看实例学VFP:制作只能从顶层表单调用的系统主菜单

我们知道正常的VFP菜单都是显示在主屏幕(_screen)中的,但如果要使用顶层表单来做软件的主界面,_screen是要屏蔽掉的.这就产生了一个问题:_screen没有了,软件菜单该往哪里放呢?没有关系,可以使用只能从顶层表单中调用的菜单来解决这个问题,另外这种菜单的调用处是在顶层表单的init事件中,而不是在主程序中. 本例来制作一个只能从顶层表单调用的系统主菜单MAIN.MPR,下一课我们将会给出使用顶层表单制作软件主界面的示例,并会在该示例中调用这个菜单.该菜单包括"数据操作"和

看实例学VFP:用sql命令修改表结构

在看实例学VFP:用sql语句修改数据表记录一文中介绍过用sql语句修改表记录的值,实际vfp中也可以用sql语言中的Alter语句动态的修改表结构.虽然可以实现这样的操作,但是我觉得尽可能还是不要在程序中动态修改表结构,因为这样有可能会造成程序的不稳定以及其它的意外情况. vfp中对表结构的操作主要是增加字段.修改字段.重命名字段和删除字段这四项,sql中修改表结构的语句是Alter语句,那么和这四项操作相对应的Alter语句格式可以总结如下: 增加字段:alter talbe 表名 add

看实例学VFP:用sql命令创建表

本文是一个在vfp中使用sql命令创建表的实例.用sql命令创建表结构的格式如下: create table 表名 (字段名1 类型(宽度[,小数位]),字段名2 类型(宽度[,小数位]),-) 在看实例学VFP:示例数据库一文中已经给出了"网站信息表"的表结构如下表: 字段名 类型 宽度 编号 字符型 5 网站名称 字符型 12 网站网址 字符型 24 那么我要创建相同的表结构并且表名为"网站信息表2"的sql命令如下: create table 网站信息表2 (