| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4175 人关注过本帖
标题:vfp中如何实时显示某段循环的累计时间
只看楼主 加入收藏
djszyyc
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2013-3-17
收藏
得分:0 
thisform.timer1.Enabled= .T.
thisform.ole1.value=0 &&ole1是进度条
*语文
()
()
()
*数学
()
()
()
*英语
()
()
()
*政治
()
()
()
*历史
()
()
()
*地理
()
()
()
*物理
()
()
()
*化学
()
()
()
*生物
()
()
()
*两项总分/同类平均分/基本分/得分
()
()
()
*******以上30个按钮分别用于计算各个学科的平均分,优生人数等一系列统计工作,相当耗时,我校共5000名学生,计算完毕要40秒表左右
thisform.timer1.Enabled= .F.
MESSAGEBOX("计算完毕",0+48,"")
2013-03-23 07:19
djszyyc
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2013-3-17
收藏
得分:0 
我的想法是:一边让程序运行1-30个按钮,同时一边在表单上用一个标签即时显示时间,要求以秒为单位进行显示.(注意是即时显示)

各位看我程序哈!
thisform.timer1.Enabled= .T.
……(1)
thisform.timer1.Enabled= .F.

其中timer1的timer事件为thisform.label3.Caption=STR(SECONDS()-time_old)
    timer1的intervl属性为1000

现在的问题是程序在执行(1)处这段耗时操作时,timer1的timer的事件根本没有动作,只是在(1)处结束后才显示一个时间,不能实时显示。
我想肯定要用多线程才能实现,创建两个线程,一个线程运行(1)处的耗时操作,一个线程运行timer的timer事件,哪就能实时显示了。
但我不会,好像VB能行。也许VFP根本就不能解决这样的问题。
望各位帮我
2013-03-23 07:35
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
vfp肯定不能实现多线程

DO IT YOURSELF !
2013-03-23 07:39
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
经测试,VFP的定时器确实无法在运行程序时起作用。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2013-03-23 09:47
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
以下是引用djszyyc在2013-3-23 07:19:08的发言:

thisform.timer1.Enabled= .T.
thisform.ole1.value=0 &&ole1是进度条
*语文
()
()
()
*数学
()
()
()
*英语
()
()
()
*政治
()
()
()
*历史
()
()
()
*地理
()
()
()
*物理
()
()
()
*化学
()
()
()
*生物
()
()
()
*两项总分/同类平均分/基本分/得分
()
()
()
*******以上30个按钮分别用于计算各个学科的平均分,优生人数等一系列统计工作,相当耗时,我校共5000名学生,计算完毕要40秒表左右
thisform.timer1.Enabled= .F.
MESSAGEBOX("计算完毕",0+48,"")
你是说仅一次循环,就需40秒吗?还是整个循环结束才 40秒?
thisform.timer1.Enabled= .T.
DO WHILE 条件
    ()
    。。。。
    ()
ENDDO
thisform.timer1.Enabled= .F.

如果一次循环很快,远远小于1秒(如循环体空转),timer 就有可能没反应。如果是这样,就不需要 timer 了,
把 timer 事件内的刷新代码,放到这循体内,也是同样刷新吧。


[ 本帖最后由 kiff 于 2013-3-23 10:14 编辑 ]
2013-03-23 09:55
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
以下是引用hu9jj在2013-3-23 09:47:15的发言:

经测试,VFP的定时器确实无法在运行程序时起作用。
不应该吧
2013-03-23 10:04
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
以下是引用djszyyc在2013-3-23 07:35:08的发言:

我的想法是:一边让程序运行1-30个按钮,同时一边在表单上用一个标签即时显示时间,要求以秒为单位进行显示.(注意是即时显示)

各位看我程序哈!
thisform.timer1.Enabled= .T.
……(1)
thisform.timer1.Enabled= .F.

其中timer1的timer事件为thisform.label3.Caption=STR(SECONDS()-time_old)
    timer1的intervl属性为1000

现在的问题是程序在执行(1)处这段耗时操作时,timer1的timer的事件根本没有动作,只是在(1)处结束后才显示一个时间,不能实时显示。
我想肯定要用多线程才能实现,创建两个线程,一个线程运行(1)处的耗时操作,一个线程运行timer的timer事件,哪就能实时显示了。
但我不会,好像VB能行。也许VFP根本就不能解决这样的问题。
望各位帮我
表单设置不科学,以及代码可能有问题
上传表单
2013-03-23 10:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不知道楼主的程序要怎样、想干嘛,既然坚持说总不行,那就当不行好了,琢磨一下多线程,用四核,够高深。

授人以渔,不授人以鱼。
2013-03-23 11:45
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
才5000条记录做这么简单的统计工作要耗时40秒,真服了你。

授人以渔,不授人以鱼。
2013-03-23 11:53
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2013-03-23 12:09
快速回复:vfp中如何实时显示某段循环的累计时间
数据加载中...
 
   



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

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