| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1605 人关注过本帖
标题:哪位版主能作个自定义类的制作、调用、对接等等的讲座!
只看楼主 加入收藏
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
我也想学,等待有系统的讲解……

    传统的做法,表格删除记录并使用zap命令后,重置表的数据源,可以使表格不发生白板,但表格里原有的控件和格式会失去。所以我在设计程序时将排好的表格保存为自定义类,在使用zap命令后,先将设及的表格移去,再将自定义的表格类添加就可以了。
    为了抛砖引玉,先把我以前写过的程序中的有关代码剪出部分,是不完整的,仅供参考。
WITH thisform
    SELECT jdk
    DELETE
    DO dpack with "jdk","监督监测数据管理屏幕"
     .RemoveObject("grid1","grid")
     .NewObject("grid1","jd_grid","my_类")
    INDEX ON ydn*10000+ydy*100+ydr to jdidex   
ENDWITH

PROCEDURE dpack
 parameter dx1,dx2
     SELECT &dx1
    USE &dx1 EXCLUSIVE
    PACK
    USE &dx1 SHARED
ENDPROC
收到的鲜花
  • tlliqi2012-11-06 23:59 送鲜花  10朵   附言:嗯,扔个小砖

相互学习,互相交流,共同提高。
2012-11-06 22:47
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
既然已经remove了对象重新生成,有什么设置是需要记忆而不能用既定的函数或过程来重新设置啊?

授人以渔,不授人以鱼。
2012-11-06 23:06
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
没有搞懂楼主的用意。如果自定义一个类,做成后,随时调用这个类,如下也可以简单实现。
创建一个自定义类,用 modi class...,比如: modi class A of libs\B, A 是自定义类名。
B 是类库名,以 .vcx 为后缀. 如果 B 原来已有,则A 会加入其中,否则 B为新建类库。
如果修改这个类:仍然是:modi class A of libs\B
如果使用这个类,很简单
  set classlib to "libs\B"
  dd=createObject("A")
  dd.show
  read event

(详解请参照vfp 帮助:modi class ..)
2012-11-07 01:48
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
以下是引用TonyDeng在2012-11-6 23:06:51的发言:

既然已经remove了对象重新生成,有什么设置是需要记忆而不能用既定的函数或过程来重新设置啊?
   
    我设计程序比较喜欢偷懒,因为不是科班出身,书本太教条只有理论,不可能正好有针对问题的答案。而网上的老师们给的多是“鱼”而不是“渔”,要想深究程序设计的系统性、合理性,规范性,实在太难了。所以我只求实用,能用。当然只要有可能,我还是非常希望学到“渔”。
    我贴出的代码用来解决表格中有许多控件,诸如Combo、Check等,控件本身还包含代码。T版说的Remove后是可以重新设置的,但用我的方法要省事些。
    谢谢!

[ 本帖最后由 qjbzjp 于 2012-11-7 10:04 编辑 ]

相互学习,互相交流,共同提高。
2012-11-07 10:00
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
以下是引用qingfameng在2012-11-7 01:48:41的发言:

没有搞懂楼主的用意。如果自定义一个类,做成后,随时调用这个类,如下也可以简单实现。
创建一个自定义类,用 modi class...,比如: modi class A of libs\B, A 是自定义类名。
B 是类库名,以 .vcx 为后缀. 如果 B 原来已有,则A 会加入其中,否则 B为新建类库。
如果修改这个类:仍然是:modi class A of libs\B
如果使用这个类,很简单
  set classlib to "libs\B"
  dd=createObject("A")
  dd.show
  read event

(详解请参照vfp 帮助:modi class ..)
    开始引出玉了。如果有实际例子就好了。

相互学习,互相交流,共同提高。
2012-11-07 10:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
如果不是每次都需要修改控件中的内容再Save成类,就不必再Save,直接从磁盘中的类库中形成即可。如果要修改控件内容,也可以通过覆盖类代码的属性和方法、事件来实现。至于类是以VCX形式存在,还是以PRG形式存在,是没区别的。

授人以渔,不授人以鱼。
2012-11-07 10:13
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用qingfameng在2012-11-7 01:48:41的发言:

没有搞懂楼主的用意。如果自定义一个类,做成后,随时调用这个类,如下也可以简单实现。
创建一个自定义类,用 modi class...,比如: modi class A of libs\B, A 是自定义类名。
B 是类库名,以 .vcx 为后缀. 如果 B 原来已有,则A 会加入其中,否则 B为新建类库。
如果修改这个类:仍然是:modi class A of libs\B
如果使用这个类,很简单
  set classlib to "libs\B"
  dd=createObject("A")
  dd.show
  read event

(详解请参照vfp 帮助:modi class ..)
举例说说
2012-11-07 11:43
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
vfp 的类,包含的内容、分类、创建、调用等,牵扯到的面是太大了。详细介绍的话,简直要写书的。我这里继续举个例子,一个登录系统用的 ——小登录窗口,是个可视类。用 modi class .. 创建,此句也可以派生自己想要的子类。抛砖引玉吧。运行这个类,用下面几句:
_screen.visible=.f.
set classlib to "wd"
dd=createobject("dr")
dd.show
read event

(张三、李四、王五的密码各是:111,222,333 )

libs.rar (3.47 KB)
收到的鲜花
  • tlliqi2012-11-10 19:23 送鲜花  10朵   附言:原创内容
2012-11-08 00:10
jsyg
Rank: 2
等 级:论坛游民
威 望:1
帖 子:75
专家分:38
注 册:2012-10-20
收藏
得分:0 
不错!学习学习!
2012-11-08 23:11
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:682
专家分:1299
注 册:2009-3-1
收藏
得分:0 
示例的作用是巨大的,学习了,谢谢
2012-11-10 17:01
快速回复:哪位版主能作个自定义类的制作、调用、对接等等的讲座!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018380 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved