| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2197 人关注过本帖
标题:编译前有对象,编译后找不到对象
只看楼主 加入收藏
lljchi
Rank: 2
等 级:论坛游民
帖 子:172
专家分:95
注 册:2016-7-21
结帖率:96.15%
收藏
已结贴  问题点数:20 回复次数:10 
编译前有对象,编译后找不到对象
编译完后真是问题多多啊,没编译前测试都是能正常运行的
下面又出现了新问题:
在某form1中双击 form1.grid1.column1.text1 调用form2,
form2根据form1中的text1定位表中行的内容,form1一直没关闭(关闭就会提示找不到form1对象),没编译前运行正常,编译后却提示找不到form1对象,form1一直没关,怎么就找不到了呢?表单的name也改过了
请问一下以上是什么情况造成的啊?和什么参数设置有关吗?
2016-12-21 16:05
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:12 
在表单A中调用表单B,这样你会吧?
如:表单A(Grid1,Command1,Command2)等控件
Grid1绑定数据源,表A(学号,姓名,班级)

1、选择Grid1某行后,按Command1调用表单B,在表单B中显示
*!*
local xh,xm,bj
xh=表a.学号
xm=表a.姓名
bj=表a.班级
do 表单b.scx with xh,xm,bj

2、表单b要设置参数接收,表单b(Text1,Text2,Text3)3个控件
*!* thisform.init
para xh,xm,bj
if !empty(xh)
    thisform.text1.value=xh
endif
if !empty(xm)
    thisform.text2.value=xm
endif
if !empty(bj)
    thisform.text3.value=bj
endif

这样就实现了,简单的在1个表单调用另外的表单了。
你双击form1.grid1.column1.text1的调用,原理是一样的,只是调用的语句位置不同。



2016-12-21 16:44
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
如果你表的字段很多,你不想传这么多参数,你可以只传某个重要的参数,如记录号,或者数据库唯一的字段,如学号。
如果你使用和表单A相同的数据源,你完全就不需要传参数也可以,由于数据表是打开的,你在表单A的Grid1中选择后,数据就停留在这条记录上。
你在表单B使用这个数据源时,由于你没有重新打开表,还是停留在这条记录上的。
你根本不需要传“form1”这个参数到表单B上去。
2016-12-21 16:53
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:4 
找不到form1对象就说明关了
2016-12-21 17:10
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:4 
form2设为模式表单试试(thisform.WindowType=1)
2016-12-21 17:28
lljchi
Rank: 2
等 级:论坛游民
帖 子:172
专家分:95
注 册:2016-7-21
收藏
得分:0 
回复 3楼 mywisdom88
谢谢,我的字段真挺多的,70多个,你后面说到的同样的数据源这个倒是一样的,所有就郁闷了,不传参数也应该可以才对,同时表A并没有关,对象A也应该存在才对吧
2016-12-21 17:30
lljchi
Rank: 2
等 级:论坛游民
帖 子:172
专家分:95
注 册:2016-7-21
收藏
得分:0 
回复 5楼 吹水佬
WindowType = 1模式。其它表单(非该表单集中的)不能变为活动的,菜单也是非活动的。表单集中的所有表单都是活动的。
试了一下没有效果,手册中的意思是要在同一表单集中吧
2016-12-21 17:43
lljchi
Rank: 2
等 级:论坛游民
帖 子:172
专家分:95
注 册:2016-7-21
收藏
得分:0 
回复 4楼 tlliqi
一直在眼前开着呢,通过form1打开form2,form1怎么能没开呢?
2016-12-21 17:51
lljchi
Rank: 2
等 级:论坛游民
帖 子:172
专家分:95
注 册:2016-7-21
收藏
得分:0 
谢谢各位,问题解决了,在打开form1的时候就创建对象变量form1,这样它就一直存在了
public form1
do form form1 name form1
翻看了以前的帖子https://bbs.bccn.net/thread-472427-1-1.html,吹水佬,mywisdom88和wzxc三位回答过,当时因为没用public定义变量,所有没成功。
看来还要多学多用才行啊!再次感谢!
2016-12-21 18:51
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用lljchi在2016-12-21 18:51:04的发言:

谢谢各位,问题解决了,在打开form1的时候就创建对象变量form1,这样它就一直存在了
public form1
do form form1 name form1
翻看了以前的帖子https://bbs.bccn.net/thread-472427-1-1.html,吹水佬,mywisdom88和wzxc三位回答过,当时因为没用public定义变量,所有没成功。
看来还要多学多用才行啊!再次感谢!

你是不是在 form1的grid1大概浏览,选中某行后,点击,然后在 form2观看或者修改?
其实,不需要在form2检测 form1,除非你在 form2中控制 form1的某个控件的状态
你 form2设置为模式,就可以。
2016-12-22 08:52
快速回复:编译前有对象,编译后找不到对象
数据加载中...
 
   



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

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