问个有点难度的问题,请来帮忙.
有的VB程序要运行好长时间,于是我想在窗口上加个按钮,在程序运行时,点击一下程序就会暂停,
再次点击程序又开始运行.就像realone看电影一样.
请教高手,有什么办法可以实现这个功能.
问题点数:20、回复次数:12Top
1 楼sparkwong(俺做油画代理:http://www.1stPainting.com)回复于 2005-06-01 22:27:46 得分 0
弄一个timer,先弄个静态变量,然后暂停的时候enabled=false,再开始的时候再=true,可以吗?Top
2 楼cxbkkk(本命年,旺啊!)回复于 2005-06-02 00:06:36 得分 0
楼上正解,建议好好看看书,这个一般是一个倒计时器的例子Top
3 楼jauntlin(逍遥吉他手)回复于 2005-06-02 00:43:17 得分 0
Timer控件就搞定了Top
4 楼flyingscv(zlj)回复于 2005-06-02 09:14:58 得分 0
doeventTop
5 楼feihu0002(飞狐)回复于 2005-06-02 09:19:04 得分 0
我还是没明白一个TIMER就搞定了??
比如我做了个含有多个FOR保持循环的程序,在计算过程中我想让它停下来,再次点击一个按钮,又让它接着运行。一个TIMER怎么做呀。
请各位说得详细一点好吗?谢过了先。Top
6 楼zuoxingyu(激情成就梦想)回复于 2005-06-02 09:43:02 得分 0
在FOR循环中停下来?
关注.
用TIMER怎么做?Top
7 楼hsghxm(专业杀鸡)回复于 2005-06-02 10:15:17 得分 0
"比如我做了个含有多个FOR保持循环的程序,在计算过程中我想让它停下来,再次点击一个按钮,又让它接着运行"
针对上面的问题解决办法倒有一个,不过就是难看了点:
窗体的按纽下只要一行代码就可以了那就是: MsgBox "123"
因为只要msgbox对话框不消失的话程序一直处于暂停状态,点确定消失了程序就会继续运行!
简单吧???Top
8 楼tywong(别人的天长地久)回复于 2005-06-02 10:26:59 得分 10
可以定义一个全局变量。如: dim blnStop as boolean
然后这样:
停止按钮事件:
sub cmdStop_click()
blnstop=not blnstop
end sub
Timer事件:
sub Timer1_Timer()
dim i as integer
static j as integer
for i=j to 10000
doevents
if not blnstop then
'做爱做的事
j=i
debug.print i
else
exit for
end if
next
end subTop
9 楼feihu0002(飞狐)回复于 2005-06-02 11:14:42 得分 0
说实在的楼上的都不是好办法.你们想谁会把自己的运算程序全部写入到timer1_timer()事件中?
用MSGBOX的方法是可行的但是程序也太不漂亮了吧.
Top
10 楼zhangzhijian(逍遥||淡水鱼)回复于 2005-06-02 11:23:21 得分 0
那也可以把程序分分开的么,调用方法不就可以了Top
11 楼sparkwong(俺做油画代理:http://www.1stPainting.com)回复于 2005-06-02 20:03:01 得分 0
我觉得你多设个布尔值应该可以的,通过判断布尔值来判断是否激活定时器啊Top
12 楼hua32000(华)回复于 2005-06-03 09:44:50 得分 10
设置一个全局布尔值如blcontinue和按钮关联,在程序中加入
for ...
doevents
if not blcontinue then
call ProcessBreak()
end if
next
private sub ProBreak()
do
doevents
if blcontinue then
exit sub
end if
loop while 1
end subTop




