【发布时间】:2017-02-26 17:42:28
【问题描述】:
我在 Windows 10 上使用 Delphi 2009。
我有一个简单的计时器(JvTimer,但 TTimer 也有同样的问题),它的 Interval 在对象检查器中设置为 1000 毫秒。它在标签中显示倒计时。
我已经这样做了很多次,但由于某种原因,这次它不起作用。好像是随机跳过9、7、5等。
我已经更改了标签、计时器、间隔但仍然相同 - 调试给出了正确的步骤,但是一旦我在调试器之外运行它,我就会遇到问题。
var
timeout: integer;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if timeout1 < 1 then
begin
jvTimer1.Enabled := False;
if WindowState = wsNormal then
WindowState := wsMinimized;
end
else
begin
Dec(timeout1);
LabeledEdit5.Text := IntToStr(timeout1);
end;
end;
【问题讨论】:
-
我们不能有一个 MCVE
-
Labeled5.update 可能会对您有所帮助。听起来其他事情正在发生,没有时间重新绘制控件。
-
谢谢 - 但我已经尝试过了,还刷新了表单。没有不同。奇怪的是,如果我创建一个只有计时器、按钮和标签的新项目 - 它工作正常。当这个 ttimer 倒计时时,原来的 prog 中没有任何东西会导致任何事件。此外,数字以更高的速率倒计时(大约 500 毫秒,即 7-5-3 以 1 秒为间隔),尽管数字以正确的速率变化。很奇特!!
-
我正在调试模式下测试这个 - 如果我在除计时器事件之外的每个函数和过程中放置断点,它们都不会被触发,所以我认为它与任何其他部分
-
如果我在没有调试的情况下运行 - 仍然是同样的问题。
标签: delphi delphi-2009