首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

怎么在进度条上添加一个取消按钮,实现取消功能

2012-03-13 
如何在进度条上添加一个取消按钮,实现取消功能?如题,在打开这个进度条的窗口里,如何获知用户点击了取消按

如何在进度条上添加一个取消按钮,实现取消功能?
如题,在打开这个进度条的窗口里,如何获知用户点击了取消按钮这个事件,从而停止/回退当前正在做的操作呢?
多谢


[解决办法]
加个按钮cb_cancel,
设置个实例变量.BOOLEAN Ib_Stop = FALSE //中断导入文件

按钮中写:
Ib_Stop = TRUE
rollback;

在运行的按钮中写:
某个循环中
for i = 1 to ...
Yield() 
IF Ib_Stop = TRUE THEN
Ib_Stop = FALSE
cb_cancel.Enabled = FALSE
//终止并退出
return
END IF
end for


[解决办法]
直接调用A的属性或方法,比如
if isvalid(A) then
A.lb_stop = true 或
A.wf_stop()
end if

探讨
可能我没说清楚,A窗口中,调用进度条的代码是这样的:
open(w_progressbar)
w_progressbar.wf_wait(0, dw_data.RowCount())//设置进度条初始值与最大值
for i = 1 to dw_data.RowCount ()
Yield()
w_progressbar.wf_pos(i)//设置进度条当前值
        //do something
        ...
next
close(w_progressbar)

进度条窗口w_progressbar上有一个取消按钮,用户点击了之后,A窗口如何得知?



[解决办法]
要通用
在进度条窗口w_progressbar上定义实例变量记录window, window iw_parent
A打开用openwithparm(w_progressbar,A)

w_progressbar的open
iw_parent=Message.PowerObjectParm

停止按钮
iw_parent.dynamic wf_stop()

探讨
5楼的方法可行,
可是如此的话,这个进度条就只能由A使用了而不能复用了。
假如B窗口/C窗口也用到了这个进度条,又该如何呢?

热点排行