首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么TTimer不能正常工作?

为什么TTimer不能正常工作?
EN

Stack Overflow用户
提问于 2010-09-20 18:01:40
回答 4查看 3.7K关注 0票数 1

正如你所看到的,我在使用Delphi2010开发的应用程序中的Delphi组件遇到了一些问题。

每当我打电话的时候:

代码语言:javascript
复制
Self.Timer1.Enabled := False;
Self.Timer1.Enabled := True;

timer组件似乎确实停止了,但它再也不会启动了。例如,它从不调用OnTimer事件。

我将它与Indy10 IRC组件(TIdIRC)结合使用。

提前感谢:)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-29 13:11:36

我在一个单独的线程中创建了一个计时器,一切都再次正常工作:)

谢谢你们,我学到了很多东西。

票数 0
EN

Stack Overflow用户

发布于 2010-09-20 18:39:13

你也知道大多数Indy调用都是阻塞的吗?定时器通过发送Windows消息来工作,这意味着需要处理这些消息才能触发定时器。如果应用程序/主线程阻塞,它不会处理消息,计时器也不会触发。也许这就是你的问题?

此外,如果您的应用程序是Windows服务或控制台应用程序,则可能不会处理消息。

票数 6
EN

Stack Overflow用户

发布于 2010-09-20 20:54:02

把Indy从等式中去掉,看看你是否能让它基本上每10秒抛出一次提示。如果不是,那么你做错了什么。比如错误地解释了间隔时间。例如,“(10000/10秒)”不是很清楚。我想你的意思是"10000ms,也就是10秒“,但是你没有显示你的代码,所以我只能猜测。Delphi不会猜测,它会按你说的做。无论如何,制作一个包含表单、按钮、编辑框和ttimer的示例应用程序,并进行实验。在你介绍Indy之前,先让计时器开始工作。然后你就知道你遇到的是TTimer问题还是Indy问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3750359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档