SetTimer的问题。 发现SetTimer只要用一次,即使kill了,还是要执行一次,有什么办法可以让它不执行,或是把时间重置?我是放在循环里面,希望以循环结束最后一次设置的SetTimer为准,在开始killTimer在结束SetTimer发现不行,很多SetTimer累积起来了,都要去执行一次。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SetTimer即使同名也不行,不会把以前的冲掉,都会累积起来。同名SetTimer回调函数为0或nil也不能重置时间。 其实我只是想循环结束以后等几秒关闭窗体,有别的办法设置等几秒也行,sleep肯定不行,整个程序都sleep了,似乎也没有wait? SetTimer为什么放在循环中???!!!这就是出错的根本原因知道吗?不要放在循环中 那该怎么实现我的目的呢?其实只要kill以后timer不去执行就没问题了。但它至少要去执行一次。 严格来说不是循环,说循环好理解,其实是不断接收消息,想以最后一次为准设置timer,你不知道到底会有多少次消息,只能每次都设置。每次开始都kill,结束都set像前面说的不行。真是循环的话跟在循环后面设置timer就可以了。 关键是这个timer,同样的句柄,同样的id,再次设置应该冲销前面的才对,而且kill了应该不执行才对。结果恰恰相反。 有个笨办法,使用TTimer组件,在SetTimer处设置Enabled:= True; kill处设置Enabled:= False;这样可以得到从最后一次执行使能处的延时 其实早解决了,呵呵,似乎delphi的Timer才能设置Enabled,还是感谢hxy3100回复,分给你了。 delphi的timer要放在它自己的窗体里面,而只要一用Forms,程序就大几十倍,让人无法忍受。 求购 《Delphi面向对象编程思想》刘艺写的 如何程序互斥,只打开一次? active form 调用问题 在线等,如何从delphi7中全部删除EmbeddedWB_D2005所有组件? winsock2 delphi7中如何获得? 根据类名得知对应控件包名称 如何区分树选中的是 节点的text还是它前面的+/-号? 求解决方案,分不够可再开贴,up有分 好久没亲自配置局域网了,在紧急关头,竟出问题,久试不成,请帮看看,谢谢! 查询网页取数据过程,在线等 IdHTTPServer通讯 delphi中的mediaplayer控件怎么判断对某种视频格式是否支持?
这就是出错的根本原因知道吗?不要放在循环中