hur.cn - 华软网

 热门搜索

如何实现进度条的暂停/继续功能?

  作者:未知    来源:网络    更新时间:2018/10/11
pb自带的用户对象u_progress_bar能够实现进度条的功能,但如何在程序执行一半时暂停。我的代码以下:
if  this.text='停止' then
        uo_1.uf_set_position ( i/100 )
       //不知道如何写暂停语句,让循环结束,我试了close(parent)语句,提醒下面的用户对象函数
      //调用没指定object,不知道什么原因
else
   if j<>1 then goto p1
end if

if  this.text='停止' then
   this.text='继续'
else
   this.text='停止'
end if

p1:for i=1 to total
    yield()   
    uo_1.uf_set_position ( i/100 )
   next




------华软网友回答------
在窗口的time事件里加检测代码,但检测发现你的实例变量到达进度条一半时候
this.text='停止'
你的程序在执行循环进程中,通过判断这个object的属性来控制执行
------华软网友回复------
谢谢楼上的朋友,我试了,然则没有用啊。能不能举个简单的例子说明啊
------华软网友回复------
帮顶一下
------华软网友回复------
利用pb中的yeild()函数在循环起头的时候把控制全交给系统,在判断是否有停止的命令!
------华软网友回复------
uo_1.uf_set_position ( i/100 )是做什么用的,

你不把自定的东东说清楚他人怎么看得懂程序
怎么解决问题
------华软网友回复------
我发现yield()函数调用,响应完外部的事件后会继续前往循环中,例如,我在循环时,点击退出,如果写close(parent),会出现毛病,没有所有提醒,如果写return也只是前往调用函数,它会继续执行
调用前的下一代码
我的yield()函数确实写在循环起头啊。另外uo_1.uf_set_position ( i/100 )函数是进度条当前位置

------华软网友回复------
到底怎么从循环外中断循环运行,而不是在循环内部写EXIT语句。
请高手帮助啊!
------华软网友回复------
学习
------华软网友回复------
仅仅暂停也是很容易的,在进度条上加一个暂停按钮,按下后改变进度条的状态,在检测的这个状态后,进度条的step方法陷入死循环(死循环里面要加入sleep,yield,和检测状态,随时能够跳出循环的代码)即可。
问题在于,暂停以后,你计划干什么。如果你要做点什么的话,就不能简单的用死循环了,你必需保存整个调用栈的当前状态,并在合适的条件下恢复这个调用栈(也能够取消循环)      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。