| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3710 人关注过本帖
标题:请问如何实现点击表单命令按钮循环执行,再次点击退出循环
只看楼主 加入收藏
yewxj
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:157
专家分:153
注 册:2015-6-18
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:10 
请问如何实现点击表单命令按钮循环执行,再次点击退出循环
请问老师,在表单中有一个命令按钮,点击后click事件循环运行语句,请问如何实现再次点击按钮终止循环;
或者再增加一个停止按钮2,点击后可以终止前面按钮运行的语句。
测试.rar (1.46 KB)
搜索更多相关主题的帖子: 点击 表单 命令 按钮 循环 
2018-03-22 14:37
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:7 
那不是:在事件过程中再触发该事件过程,VFP好象不能这样。
2018-03-22 14:40
yewxj
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:157
专家分:153
注 册:2015-6-18
收藏
得分:0 
有其他 终止 表单中 命令按钮 click事件中的 循环语句 或者 终止 click事件语句 的方法吗?

[此贴子已经被作者于2018-3-22 14:47编辑过]

2018-03-22 14:45
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
以下是引用yewxj在2018-3-22 14:45:30的发言:

有其他 终止 表单中 命令按钮 click事件中的 循环语句 或者 终止 click事件语句 的方法吗?

简单的可以用定时器,复杂的要考虑多线程、多进程。
用定时器:
** test.prg
of = CREATEOBJECT("form1")
of.show(1)

DEFINE CLASS form1 as Form
    ADD OBJECT cmd as commandbutton WITH top=10,left=10,height=22,caption="开始"
    ADD OBJECT timer1 as timer WITH Interval=1000,Enabled=.F.
   
    PROCEDURE cmd.click
        thisform.timer1.Enabled = this.Caption=="开始"
        this.Caption = IIF(this.Caption=="开始", "停止", "开始")
    ENDPROC

    PROCEDURE timer1.timer
        thisform.Caption = TIME()
    ENDPROC
ENDDEFINE
2018-03-22 14:55
yewxj
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:157
专家分:153
注 册:2015-6-18
收藏
得分:0 
虽然没有解决问题,仍然要谢谢吹老师
2018-03-22 15:06
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:527
专家分:1281
注 册:2010-1-11
收藏
得分:7 
用检测按钮是否有点击作为循环终止条件
2018-03-22 15:36
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
以下是引用yewxj在2018-3-22 15:06:17的发言:

虽然没有解决问题,仍然要谢谢吹老师

在事件过程中也是可以处理这种情况,但其他事务就暂时不能工作。
如:
of = CREATEOBJECT("form1")
of.show(1)

DEFINE CLASS form1 as Form
    ADD OBJECT cmd as commandbutton WITH top=10,left=10,height=22,caption="开始"
    ADD OBJECT text1 as textbox WITH top=50
    PROCEDURE cmd.click
        this.Caption = "停止"
        DO WHILE .T.
            thisform.Caption = TIME()
            IF INKEY(0.01,"M") != 0
                IF AMOUSEOBJ(arr,1)>0 AND UPPER(arr[1].name)=="CMD"
                    EXIT
                ENDIF
            ENDIF
        ENDDO
        this.Caption = "开始"
    ENDPROC
ENDDEFINE
2018-03-22 16:49
yewxj
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:157
专家分:153
注 册:2015-6-18
收藏
得分:0 
实在没有办法了,只能在表单增加运行时间选项,运行时间结束后,程序终止循环,谢谢老师!
2018-03-23 11:18
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:7 
设一个热键退出循环
测试.rar (1.65 KB)
2018-03-23 11:44
yewxj
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:157
专家分:153
注 册:2015-6-18
收藏
得分:0 
回复 9楼 kiff
也是一个好办法,谢谢老师
2018-03-23 13:04
快速回复:请问如何实现点击表单命令按钮循环执行,再次点击退出循环
数据加载中...
 
   



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

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