程序员人生 网站导航

VFP基础教程 5.2 表单(二)

栏目:FoxPro时间:2014-03-18 10:38:59

    八。为表单创建新属性:

    1.打开表单,单击"表单"菜单,选"新建属性"菜单项,系统弹出"新建属性"对话框
    2.在该对话框的"名称"框中输入属性名,同时可在说明框中加上该属性的注释,单击"添加"即可,如图8


    3.选access项和assign项,则在新建表单属性的同时创建该属性对应的方法程序,其中access方法在查询该属性时被执行,assign方法程序在修改该属性时被执行。
    4.单击对话框中的"关闭"按钮,该属性即被添加到"属性"窗口中,选中表单,在"属性"窗口中可选中并检查该属性,如图9

Visual FoxPro基础教程完整版

    九。为表单创建新方法程序:

    1.打开表单,单击"表单"菜单,选"新建方法程序"菜单,系统显示"新建方法程序"对话框
    2.输入方法程序的名称后,单击"添加"按钮即可,如图10.

    方法程序代码应在"属性"窗口的"方法程序"选项卡中选择该方法程序名双击,在弹出的编辑器中输入方法程序。新建的方法程序的执行方法与系统提供的方法程序相同。

    十。例一:制作表单xggz.scx,修改人员工资数据。

    1.新建一个表单,右击表单空白处,将"工资情况"表添加到数据环境中
    2.在"数据环境设计器"中,将"工资情况"表的各个字段,依次拖到表单上,如图11,

    并调整它们的位置,全部字段拖到表单上后,如图12

    3.向表单添加5个命令按钮:command1,command2,command3,command4和command5,将它们的caption属性依次设为"第一个","上一个","下一个","最后一个","退出",并调整它们的位置,如图13.

    再次说明一下修改控件属性的方法:以command1为例,在"表单设计器"中选中command1,其四周出现黑色方块,表明已被选取。然后在"属性"窗口中选"全部"选项卡,拖动滚动条,选中caption属性,在上方的文本框中输入属性值:第一个,如图14

    4.将表单的caption属性(即标题栏显示的内容)设为"修改工资",autocenter属性设为。T.(此属性设为真,运行时表单自动居中).
    5.编写代码:

    * "第一个"按钮(command1)的click事件代码:
    go top
    thisform.refresh &&刷新显示
    *"上一个"按钮(command2)的click事件代码:
    if !bof()
    skip -1 &&如果当前记录不是首记录,则向上移动一位记录指针
    endif
    thisform.refresh
    *"下一个"按钮(command3)的click事件代码:
    if !eof()
    skip &&如果当前记录不是最后一条记录,向下移动一位记录指针
    endif
    thisform.refresh
    *"最后一个"按钮(command4)的click事件代码:
    go bottom
    thisform.refresh
    *"退出"按钮(command5)的click事件代码:
    tui=messagebox("您确实要退出吗?",4+64,"提示信息")
    if tui=6 &&如果此条件为真,说明运行时用户点了消息框中的"是",执行thisform.release释放表单
    thisform.release
    clear events
    endif

    6.保存表单到e:myvfp,名为"xggz"

    7.运行表单,

    十一。例二:表单调用举例:建立一个名为diaoyong的程序文件,用程序代码调用例一中建立的xggz.scx表单

    1.在命令窗口输入命令:modify command diaoyong,在弹出的代码窗口中输入如下代码:
    set default to e:myvfp
    do form xggz
    read events

    2.在命令窗口如下命令执行程序:
    do diaoyong

    十二。例三:表单内部控件的事件发生顺序

    1.新建一个表单,添加三个命令按钮,如图16


    2.添加事件代码:

    *表单的load事件:messagebox("form1.load")
    *表单的inint事件:messagebox("form1.init")
    *表单的click事件:messagebox("form1.click")
    *表单的destroy事件:messagebox("form1.destroy")
    *command1的init事件:messagebox("command1.init")
    *command2的init事件:messagebox("command2.init")
    *command3的init事件:messagebox("command3.init")

    *commadn1的click事件:messagebox("command1.click")

    3.保存表单文件为li3.scx,目录为e:myvfp.运行li3.scx,观察事件发生的先后顺序。

    十三。例四:修改表单li3.scx:

    1.在命令窗口依次输入下面两条命令,打开表单li3.scx
    set default to e:myvfp
    modify form li3.scx

    2.向表单中添加一个文本框text1,为text1编写下列事件代码:

    *text1的when事件:messagebox("text1.when")
    *text1的gotfocus事件:messagebox("text1.gotfocus")
    *text1的valid事件:
    messagebox("text1.valid")
    return .t.
    *text1的lostfocus事件:messagebox("text1.lostfocus")

    3.运行表单,单击text1文本框,观察文本框对象事件发生的先后顺序
    4.将text1的valid事件的返回值改为。F.(即return .F.),运行表单,单击text1文本框,观察有何不同。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐