TTimer - вспоминия Delphi

Рейтинг: 0Ответов: 1Опубликовано: 15.01.2015

Доброго всем.
Я совсем забыл Delphi программирование.
Что я делаю не так?
Label1 не показывает оставшееся время.

Timer_interval:= 10000;
....
procedure TForm1.Timer1Timer(Sender:TObject);
var
  timer_click: integer;

begin

  timer_click:=Timer_interval-1;

  if timer_click > 0 then
    begin
      Label1.Caption:=IntToStr(timer_click);
    end
  else
    begin
      Button2.Enabled:=True;
      timer1.Enabled:=False;
    end;
end;

Ответы

▲ 3

При каждом вызове события OnTimer() переменная timer_click заново объявляется и равна Timer_interval-1 т.е. 9999. Переменную timer_click нужно объявлять за пределами видимости события OnTimer()

Timer_interval:= 10000;
timer_click: integer;
timer_click := Timer_interval;
....
procedure TForm1.Timer1Timer(Sender:TObject);
begin

  //timer_click:=timer_click-1;
  Dec(timer_click);

  if timer_click > 0 then
    begin
      Label1.Caption:=IntToStr(timer_click);
    end
  else
    begin
      Button2.Enabled:=True;
      timer1.Enabled:=False;
    end;
end;