| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1795 人关注过本帖
标题:多个相同控件如何使用INTERACTIVECHANGE()事件,如何控制?
只看楼主 加入收藏
lfd_007
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-6-7
收藏
 问题点数:0 回复次数:5 
多个相同控件如何使用INTERACTIVECHANGE()事件,如何控制?
虎哥,实在不好意思,这个程序编的好像是你在作一样.我又遇到了一个难题,就是前两天作到的那个关于选择的测试,在表单上多个选项按钮组如何执行相同的INTERACTIVECHANG()的事件呀,(让每一页的选项按钮组在选择后都能完成替换.
我的思路是在REF()自定义方法中加入THISFORM.OPTION&..INTERACTIERCHANGE语句,可是每一篇只有一个选项按钮能进行顺利的替换,别的都不好使,为什么呢?肯请答复....
搜索更多相关主题的帖子: 控件 
2006-10-15 22:34
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
还是定位的问题。点某个OPTIONGROUP的时候(假设它是第X个选项组),它的记录号应该是(THISFORM.nPages-1)*6+X,在修改相应记录值的时候,先定位在该记录(用GOTO语句).你先试试看,不行再说.

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-10-15 22:50
lfd_007
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-6-7
收藏
得分:0 

我是这样作的:
FORM1的自定义REF():
public nCnt
FOR nCnt=1 TO 6
cCnt=STR(nCnt,1)
GO TOP
SKIP (nPages-1)*6+nCnt-1
IF EOF()
THISFORM.LABEL&cCnt..VISIBLE=.F.
THISFORM.OPTIONGROUP&cCnt..VISIBLE=.F.
ELSE
THISFORM.LABEL&cCnt..VISIBLE=.T.
THISFORM.OPTIONGROUP&cCnt..VISIBLE=.T.
thisform.Optiongroup&cCnt..Interactivechange
*THISFORM.LABEL&cCnt..CAPTION="第"+ALLTRIM(STR(no))+"题:"+quiz_xz.question
THISFORM.LABEL&cCnt..CAPTION=quiz_xz.question
THISFORM.OPTIONGROUP&cCnt..OPTION1.CAPTION="A. "+choice_A
THISFORM.OPTIONGROUP&cCnt..OPTION2.CAPTION="B. "+choice_B
THISFORM.OPTIONGROUP&cCnt..OPTION3.CAPTION="C. "+choice_C
THISFORM.OPTIONGROUP&cCnt..OPTION4.CAPTION="D. "+choice_D
*THISFORM.OPTIONGROUP&cCnt..VALUE=AT(user_ans,"ABCD")

ENDIF
ENDFOR
各按钮组的INTERACTIVECHANGE()
go top
REPLACE USER_ANS WITH Substr("ABCD",THISFORM.OPTIONGROUP1.VALUE,1) reco (nPages-1)*6+nCnt-1
do case
case user_ans='A'
replace ans_no with choice_a
case user_ans='B'
replace ans_no with choice_b
case user_ans='C' .or. answer='C'
replace ans_no with choice_c
case user_ans='D'
replace ans_no with choice_d
endcase
do case
case answer='A'
replace ans_yes with choice_a
case answer='B'
replace ans_yes with choice_b
case answer='C' .or. answer='C'
replace ans_yes with choice_c
case answer='D'
replace ans_yes with choice_d
endcase
但还是同原来一样,只有这一页的最后一个记录能够的背替换,其它的都没有反应,而且它还说'记录超出范围',能不能再提示一下解决思路...

2006-10-16 07:42
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
楼主总是把人家说的话当做耳旁风!
你先看看我的原话呀

还是定位的问题。点某个OPTIONGROUP的时候(假设它是第X个选项组),它的记录号应该是(THISFORM.nPages-1)*6+X,在修改相应记录值的时候,先定位在该记录(用GOTO语句).你先试试看,不行再说.

各按钮组的INTERACTIVECHANGE():以后OPTIONGROUP1为例
GOTO (THISFORM.nPages-1)*6+1 &&若是OPTIONGROUP2的话,则用GOTO (THISFORM.nPages-1)*6+2,类推
REPLACE USER_ANS WITH Substr("ABCD",THISFORM.OPTIONGROUP1.VALUE,1)
do case
case user_ans='A'
replace ans_no with choice_a
case user_ans='B'
replace ans_no with choice_b
case user_ans='C' .or. answer='C'
replace ans_no with choice_c
case user_ans='D'
replace ans_no with choice_d
endcase
do case
case answer='A'
replace ans_yes with choice_a
case answer='B'
replace ans_yes with choice_b
case answer='C' .or. answer='C'
replace ans_yes with choice_c
case answer='D'
replace ans_yes with choice_d
endcase

[此贴子已经被作者于2006-10-16 9:46:35编辑过]


感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-10-16 09:45
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
这里能用GOTO语句,是因为这些能显示的都与有关记录对应.而最开始不能用GOTO是因为不知道哪些OPTIONGROUP可以显示记录.你实在是要思考,多练习!

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-10-16 09:49
lfd_007
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-6-7
收藏
得分:0 

多谢虎哥支持.我也想过,可对这些问题总有束手无策之感,不之从那里开始解决.在书本中找不到,上网查,我的问题又太抽象,没法查.
一直认为通过解决问题,是学习VFP的捷径,事实上也跟着虎哥学了不少的知识,这些都是在书本上学不到的,十分感谢.我会在实践中总结,总结后实践...

2006-10-16 21:37
快速回复:多个相同控件如何使用INTERACTIVECHANGE()事件,如何控制?
数据加载中...
 
   



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

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