Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Непонятно с Timer


Автор: Matematik 6.2.2007, 17:24
Простейший код. Как я думал, должно в мемо постоянно писать строки. Но не работает.
Не понимаю, почему таймер не срабатывает
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  timer1.Interval := 0;
  timer1.Enabled := False;
  Timer1Timer(timer1)
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   timer1.Enabled := False;
   memo1.Lines.Add(';;');
   timer1.Enabled := True;
end;

Просто интересно почему не работает с нулевым интервалом.

Автор: gambit 6.2.2007, 17:33
Код

timer1.Interval := 0;

Таймер выключается.
попробуй
Код

timer1.Interval := 1;




Автор: Sunvas 6.2.2007, 17:35
Когда интервал таймера равен 0, это равносильно что таймер отключен. В VB6, например у таймера нет свойства enabled. В делфи же оно сделано для удобства.

Автор: Matematik 6.2.2007, 17:36
Ясно. С английским плоховато

Автор: Rodman 6.2.2007, 17:37
согласен с gambit...

и зачем еще делать 
Код

timer1.Enabled := False;

так часто... может с этими энеблами бока?!

Автор: VICTAR 6.2.2007, 17:38
Ответ прост smile
юнит ExtCtrls
Код

procedure TTimer.UpdateTimer;
begin
  KillTimer(FWindowHandle, 1);
  if (FInterval <> 0) and FEnabled and Assigned(FOnTimer) then
    if SetTimer(FWindowHandle, 1, FInterval, nil) = 0 then
      raise EOutOfResources.Create(SNoTimers);
end;

Автор: MetalFan 6.2.2007, 22:29
VICTAR, вот-вот. не быстрее ли и проще глянуть самому в генофонд VCL, чем тратить свое и чужое время на вопросы и ответы на форуме?!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)