收藏 分销(赏)

在VFP中创建自己的生成器.doc

上传人:xrp****65 文档编号:7682682 上传时间:2025-01-12 格式:DOC 页数:6 大小:207.50KB
下载 相关 举报
在VFP中创建自己的生成器.doc_第1页
第1页 / 共6页
在VFP中创建自己的生成器.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述
在VFP中创建自己的生成器     VFP中一些控件程序自带了生成器,当我们自己创建一个类时,大家有没有想过自己也给这个类创建一个生成器,其实自定义生成器并不难,只要完成以下几个步骤即可(以我的雨田Gridtree生成器为例): 【第一步】创建一个新的项目,名叫:gridtreebuilder 【第二部】创建一个程序:gridtreebuilder.prg,代码如下 PUBLIC OSelGridtreeRef LOCAL LASELECTEDOBJECTS( 1 ) DO CASE CASE ASELOBJ(LASELECTEDOBJECTS) >= 1 AND UPPER(LASELECTEDOBJECTS(1).CLASS) = 'GRIDTREE' OSelGridtreeRef = LASELECTEDOBJECTS(1) SET CLASSLIB TO Gridtree ADDITIVE DO FORM Gridtreebuilder CASE ASELOBJ(LASELECTEDOBJECTS) >= 1 AND UPPER(LASELECTEDOBJECTS(1).CLASS) = 'TREEVIEW' OSelGridtreeRef = LASELECTEDOBJECTS(1).GRIDTREE SET CLASSLIB TO Gridtree ADDITIVE DO FORM Gridtreebuilder OTHERWISE = MESSAGEBOX('只有当基于GridTree的类在表单设计器中被选择,GridTree生成器才会被执行!’) ENDCASE RELEASE OSelGridtreeRef RETURN   说明:1、ASELOBJ()函数把“表单设计器”、“类设计器”或者代码“编辑”窗口中当前选定的控件或          容器的对象引用存入指定的变量数组。 2、OSelGridtreeRef保存选定的控件对象,以便在在生成器表单对其进行引用。当然也可以在打开生成器表单时将选定的控件对象传递给表单 【第三步】创建一个表单“Gridtreebuilder”类似如下图: 在表单上放一些用于设置参数的控件,那么这些设置如何起作用呢?别忘了第二步的“OSelGridtreeRe”这个全局变量,有了这个变量,你可以随时访问选定对象的属性及方法,假设选定的对象有一个“table”这个属性,生成器窗口上有一个文本框text1用于设置选定控件的Table属性,以下代码可以用Text1的值来设置Table属性:OSelGridtreeRe.table = allt(thisform.text1.value),这些代码可以放在生成器表单的一个“确定”按钮。呵呵!就这么简单。 【第四步】 将gridtreebuilder.prg设置为主程序,并将其编译为“APP”文件。 【第五步】 在VFP编程语言中注册这个生产器,注册的过程是,首先将Gridtreebuilder.app文件复制到VFP的Wizards文件夹中,然后在builder.dbf数据表中注册生成器的信息。     Wizards文件夹位置如下图:   builder.dbf数据表内容如下图:     注册生成器的代码: lcFile = HOME(1) + 'wizards\Gridtreebuilder.app' lcTable = HOME(1) + 'wizards\builder.dbf'   *将生成器文件复制到VFP程序的相应文件夹中 COPY FILE Gridtreebuilder.app TO "&lcFile"   IF NOT USED("&lcTable") USE "&lcTable" IN 0 ENDIF   *在相应数据表中注册GridTree类生成器 LOCATE FOR UPPER(type)='GRIDTREE' IF !FOUND() APPEND BLANK ENDIF REPLACE name WITH 'GRIDTREE生成器', type WITH 'GRIDTREE', program WITH 'wizards\Gridtreebuilder.app'   USE IN &lcTable   MESSAGEBOX('注册成功')   注销生成器的代码: lcFile = HOME(1) + 'wizards\Gridtreebuilder.app' lcTable = HOME(1) + 'wizards\builder.dbf'   IF FILE("&lcFile") DELETE FILE "&lcFile" ENDIF     SELECT 0 USE "&lcTable" ALIAS builder   LOCATE FOR UPPER(builder.type)='GRIDTREE' IF FOUND() DELETE ENDIF   PACK         完成以上五步,就可以使用自定义的生成器了! 作者博客:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服