| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4467 人关注过本帖
标题:可以在已有的表单上创建对象并定义对象事件吗
只看楼主 加入收藏
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:694
专家分:20
注 册:2014-1-16
收藏
得分:0 
吹水佬师傅,您的程序是定义一个表单类,而我是在已经生成的实体表单上添加对象
2016-03-12 17:38
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:694
专家分:20
注 册:2014-1-16
收藏
得分:0 
为了说明问题,我上传个文件
测试.rar (2.86 KB)
点击表单的按钮,没有任何反应
2016-03-12 19:25
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:694
专家分:20
注 册:2014-1-16
收藏
得分:0 
我把类定义在PRG里面,然后用表单里面的按钮,调用PRG程序,却没有任何反应,(帖子已经结了,但感觉问题还没有弄透,所以恳请师傅们能给与帮助)

[此贴子已经被作者于2016-3-12 19:30编辑过]

2016-03-12 19:29
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用fanjinyu9108在2016-3-12 19:29:32的发言:

我把类定义在PRG里面,然后用表单里面的按钮,调用PRG程序,却没有任何反应,(帖子已经结了,但感觉问题还没有弄透,所以恳请师傅们能给与帮助)

参考 SET PROCEDURE 命令。
ADD OBJECT 前先用 SET PROCEDURE TO 这个PRG
2016-03-12 20:08
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
回复 12楼 fanjinyu9108
程序1.prg
thisform.AddObject("text1", "_text") 这句可以不要
DEFINE CLASS _text as text   没有见到自定义的 text 类,应该是想引用VFP的 TextBox 类吧?
    width=70
    top = 10
    left=10
    visible = .t.
   
    PROCEDURE click
       =MESSAGEBOX("你好")
    endpro
ENDDEFINE
改为:
DEFINE CLASS _text as textbox
    width=70
    top = 10
    left=10
    visible = .t.
   
    PROCEDURE click
       =MESSAGEBOX("你好")
    endpro
ENDDEFINE

command1的click事件:
SET PROCEDURE TO E:\测试\程序1
改为:
SET PROCEDURE TO E:\测试\程序1
thisform.AddObject("text1", "_text")
2016-03-12 20:23
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:694
专家分:20
注 册:2014-1-16
收藏
得分:0 
太感谢了,我现在在外面,不能测试,但吹水佬的解答让我茅室顿开
2016-03-12 20:54
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:694
专家分:20
注 册:2014-1-16
收藏
得分:0 
我试了下,好像不行啊,点击按钮,显示“找不到TEXT类定义”
2016-03-12 21:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
挤牙膏就是这样的了,一开始不说清楚意图和需求,到后来听的人多,改来改去,总是弄不到位.基础问题.

你结的方案都不这个,说明当时就没弄出来,又说会了.走了回头路,回去静态设计了,自己不知道而已,直接在设计器上拖一个空间,也是这般,前面已经提示过这种办法的.

[此贴子已经被作者于2016-3-12 21:52编辑过]


授人以渔,不授人以鱼。
2016-03-12 21:48
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:694
专家分:20
注 册:2014-1-16
收藏
得分:0 
TonyDeng师傅,您说的BINDEVENT我是会用的,我在试用另外的方法,增加一个表格,直接在设计器拖一个是可以,但是我的表格有25个列,而且很多列的TEXT都有事件发生,逐个在每个列的TEXT添加事件代码,时间长了,我也记不清表格里面的哪些控件有代码,程序的可读性很差。用BINDEVENT就要在表单里面添加很多方法程序,然后绑定,这也可以,但是方法多了也看了花眼,如果直接用DEFINE CLASS,所有的事件在一起,可读性好,修改也方便

[此贴子已经被作者于2016-3-12 22:23编辑过]

2016-03-12 22:10
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我给你两个方案,你选第二种,后来改第一种,当时就没选好。至于你说的问题,是编程没编好,不是方法本身不适用。用哪种方法都是可以实现的,差别不大。

授人以渔,不授人以鱼。
2016-03-12 22:45
快速回复:可以在已有的表单上创建对象并定义对象事件吗
数据加载中...
 
   



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

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