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

上传人:hw****26 文档编号:4046569 上传时间:2019-09-16 格式:DOC 页数:6 大小:207.50KB
下载 相关 举报
在VFP中创建自己的生成器.doc_第1页
第1页 / 共6页
在VFP中创建自己的生成器.doc_第2页
第2页 / 共6页
在VFP中创建自己的生成器.doc_第3页
第3页 / 共6页
在VFP中创建自己的生成器.doc_第4页
第4页 / 共6页
在VFP中创建自己的生成器.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、在 VFP 中创建自己的生成器VFP 中一些控件程序自带了生成器,当我们自己创建一个类时,大家有没有想过自己也给这个类创建一个生成器,其实自定义生成器并不难,只要完成以下几个步骤即可(以我的雨田 Gridtree 生成器为例):【第一步】创建一个新的项目,名叫:gridtreebuilder【第二部】创建一个程序:gridtreebuilder.prg,代码如下PUBLIC OSelGridtreeRefLOCAL LASELECTEDOBJECTS( 1 )DO CASECASE ASELOBJ(LASELECTEDOBJECTS) = 1 AND UPPER(LASELECTEDOBJEC

2、TS(1).CLASS) = GRIDTREEOSelGridtreeRef = LASELECTEDOBJECTS(1)SET CLASSLIB TO Gridtree ADDITIVEDO FORM GridtreebuilderCASE ASELOBJ(LASELECTEDOBJECTS) = 1 AND UPPER(LASELECTEDOBJECTS(1).CLASS) = TREEVIEWOSelGridtreeRef = LASELECTEDOBJECTS(1).GRIDTREESET CLASSLIB TO Gridtree ADDITIVEDO FORM Gridtreebui

3、lderOTHERWISE= MESSAGEBOX(只有当基于 GridTree 的类在表单设计器中被选择,GridTree 生成器才会被执行!)ENDCASERELEASE OSelGridtreeRefRETURN说明:1、ASELOBJ() 函数把 “表单设计器”、“类设计器”或者代码“ 编辑”窗口中当前选定的控件或容器的对象引用存入指定的变量数组。2、OSelGridtreeRef 保存选定的控件对象,以便在在生成器表单对其进行引用。当然也可以在打开生成器表单时将选定的控件对象传递给表单【第三步】创建一个表单“Gridtreebuilder”类似如下图:在表单上放一些用于设置参数的控件

4、,那么这些设置如何起作用呢?别忘了第二步的“OSelGridtreeRe”这个全局变量,有了这个变量,你可以随时访问选定对象的属性及方法,假设选定的对象有一个“table”这个属性,生成器窗口上有一个文本框 text1 用于设置选定控件的 Table 属性,以下代码可以用 Text1 的值来设置 Table 属性:OSelGridtreeRe.table = allt(thisform.text1.value),这些代码可以放在生成器表单的一个“确定” 按钮。呵呵!就这么简单。【第四步】 将 gridtreebuilder.prg 设置为主程序,并将其编译为“APP”文件。【第五步】 在 VF

5、P 编程语言中注册这个生产器,注册的过程是,首先将Gridtreebuilder.app 文件复制到 VFP 的 Wizards 文件夹中,然后在 builder.dbf 数据表中注册生成器的信息。 Wizards 文件夹位置如下图:builder.dbf 数据表内容如下图:注册生成器的代码:lcFile = HOME(1) + wizardsGridtreebuilder.applcTable = HOME(1) + wizardsbuilder.dbf*将生成器文件复制到 VFP 程序的相应文件夹中COPY FILE Gridtreebuilder.app TO “&lcFile“IF N

6、OT USED(“&lcTable“)USE “&lcTable“ IN 0ENDIF*在相应数据表中注册 GridTree 类生成器LOCATE FOR UPPER(type)=GRIDTREEIF !FOUND()APPEND BLANKENDIFREPLACE name WITH GRIDTREE 生成器, type WITH GRIDTREE, program WITH wizardsGridtreebuilder.appUSE IN &lcTableMESSAGEBOX(注册成功)注销生成器的代码:lcFile = HOME(1) + wizardsGridtreebuilder.applcTable = HOME(1) + wizardsbuilder.dbfIF FILE(“&lcFile“)DELETE FILE “&lcFile“ENDIFSELECT 0USE “&lcTable“ ALIAS builderLOCATE FOR UPPER(builder.type)=GRIDTREEIF FOUND()DELETEENDIFPACK完成以上五步,就可以使用自定义的生成器了!作者博客:http:/blog.sina.c

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。