主题:动态生成prg调用、动态绑定GRID的数据、动态绑定GRID的事件、动态添加TEXTBOX控件示例
看到网上多人求动态添加代码的方法。写了个简单的例子,
1、 动态生成prg程序
可用STRTOFILE()生成PRG,或FCREATE(),或COPY TO
或select... from 表 into ...
2、执行前先清除缓冲中的已编译PRG,
CLEAR PROGRAM &&清除缓冲中的已编译PRG
COMPILE prgtest.prg NODEBUG &&重新编译
3、动态绑定事件及动态加入TEXTBOX控件,须先打开表。
4、动态添加控件用Addobject()不及newobject()好用,前者先打开类库,还要释放类库。
*用Addobject时才用,因此不如用Newobject
* cClassName=SYS(5)+SYS(2003)+"\myclass.vcx"
* SET CLASSLIB TO "&cClassName" ALIAS myclass ADDITIVE
* 对象.Addobject("text2","mytext","myclass")
对象.Newobject("text2","mytext","myclass") &&增加text2,可加动态生成PRG,在PRG中声明类
将动态生成PRG和动态添加控件结合 .
对象.text2.Visible=.T. &&此句重要,我刚做时,没想到对象创建时默认为.F.,查了很久才查出来********
动态添加控件后,也就动态添加了按ENTER键的方向,按右键调用系统的复制、剪切、粘贴功能
SHIFT+鼠标左键实现表格的动态拖放数据交换。我只写的同类数据交换。如须要可自己写多几种转换。
5、动态绑定事件用 BINDEVENT(),可与动态生成prg程序结合用。
6、连编EXE时,先在VFP环境下生成PRGTEST.PRG,并点主界面的《本界面调用PRG》编译PRG,再将动态生成
的PRG选中排除。连编EXE后,也不用复制过去。用完退出时删除动态生成的PRG。
7、示例中用了SYS(16,1)和PROGRAM(2)不用传递参数可知是哪个键调用PRG
我是在VFP9所做,只要EXE文件和VFP9的运行库就可运行。
以上有些功能可能在以前版本不支持,须大家试后改动。
徐 军 2005/12/03
[color=FF0000][size=5]2006/02/08
修正版,请重新下载[/size]:[/color]
http://upload.programfan.com/upfile/200602081843955.rar
1、 动态生成prg程序
可用STRTOFILE()生成PRG,或FCREATE(),或COPY TO
或select... from 表 into ...
2、执行前先清除缓冲中的已编译PRG,
CLEAR PROGRAM &&清除缓冲中的已编译PRG
COMPILE prgtest.prg NODEBUG &&重新编译
3、动态绑定事件及动态加入TEXTBOX控件,须先打开表。
4、动态添加控件用Addobject()不及newobject()好用,前者先打开类库,还要释放类库。
*用Addobject时才用,因此不如用Newobject
* cClassName=SYS(5)+SYS(2003)+"\myclass.vcx"
* SET CLASSLIB TO "&cClassName" ALIAS myclass ADDITIVE
* 对象.Addobject("text2","mytext","myclass")
对象.Newobject("text2","mytext","myclass") &&增加text2,可加动态生成PRG,在PRG中声明类
将动态生成PRG和动态添加控件结合 .
对象.text2.Visible=.T. &&此句重要,我刚做时,没想到对象创建时默认为.F.,查了很久才查出来********
动态添加控件后,也就动态添加了按ENTER键的方向,按右键调用系统的复制、剪切、粘贴功能
SHIFT+鼠标左键实现表格的动态拖放数据交换。我只写的同类数据交换。如须要可自己写多几种转换。
5、动态绑定事件用 BINDEVENT(),可与动态生成prg程序结合用。
6、连编EXE时,先在VFP环境下生成PRGTEST.PRG,并点主界面的《本界面调用PRG》编译PRG,再将动态生成
的PRG选中排除。连编EXE后,也不用复制过去。用完退出时删除动态生成的PRG。
7、示例中用了SYS(16,1)和PROGRAM(2)不用传递参数可知是哪个键调用PRG
我是在VFP9所做,只要EXE文件和VFP9的运行库就可运行。
以上有些功能可能在以前版本不支持,须大家试后改动。
徐 军 2005/12/03
[color=FF0000][size=5]2006/02/08
修正版,请重新下载[/size]:[/color]
http://upload.programfan.com/upfile/200602081843955.rar