TTimer自行停止

ThN*_*ThN 1 delphi timer

我在我的软件中使用TTimer,它应该永远运行24/7.我的软件中没有任何地方禁用或停止运行计时器.它的主要功能是更新表的值.它在软件运行后立即启动,从那时起,TTimer就不应该停止.然而,在跑了一个多月后,TTimer神秘地停止了运行.该软件在Windows 7上运行,该软件在Delphi 2010 XE上开发.我搜索了我的代码以查看可能导致它的原因,但我无法弄清楚是什么.

 Timer1.Enabled:=true;
Run Code Online (Sandbox Code Playgroud)

这就是计时器的启动方式.

更新:经过一些调查,我发现TTimer从未停止,但还有另一个问题.TForm上的TStringGrid表只是不显示任何更新的值.此外,我还发现我用于存储数据项列表的我的TList列表正在以某种方式被破坏列表变空.但是,只有在程序启动时才加载列表中的数据项.

每次我更新表单上的TStringGrid时,我都会运行从TL到count-1位置的TList项.因此,如果内存中的TList中没有项目,我的代码只会跳过显示部分,因此TStringGrid上没有任何更新.

就像是:

If (List.count>0) then 
begin
//Display values in TStringGrid; 
end;
Run Code Online (Sandbox Code Playgroud)

但是当软件仍在运行时,我能够将文件列表从文件重新加载到TList列表中,我的软件开始像它想象的那样工作.

我不想说程序员最讨厌最丑陋的词.我恐怕可能有内存泄漏.有谁这么认为?

任何帮助将不胜感激.谢谢.

Eri*_*rik 5

我打赌它会在重启后49天停止.当Windows GetTickCount回绕时.当然你没有做基于此的失败检查?

  • @RRUZ:是的,这就是我问他是否有支票的原因 (2认同)