Тема: Timer
Показать сообщение отдельно
  #4  
Старый 23.01.2012, 12:06
Аватар для vah-smile
vah-smile vah-smile вне форума
Новичок
 
Регистрация: 16.02.2009
Адрес: Украина
Сообщения: 67
Репутация: -53
По умолчанию

Цитата:
Сообщение от lmikle
Отсчет чего? Какого времени?
Указанным кодом ты просто задаешь, что таймер будет срабатывать каждые 5 секунд.

Нужно сделать отсчет времени в Label1 на выполнение програмы. По истечении заданого времени - открывается результат набраных балов (тест). Сделал "дедовским" способом (без использования Timer1.Interval), прописав огромный кусок кода для выше поставленного задания, но интересует, может есть простейший способ реализации задания? Ведь при использовании Timer1.Interval ведется отсчет времени. Может можно его достать через функцию в 1-2 строчки?

Код:
// m - минуты
// s - секунды
// tmp_time - переменная String, для формирования строки-времени и вывода ее в Label1

procedure TForm1.Timer1Timer(Sender: TObject);
var tmp_time: String;
begin
// Делаем красивый вывод остатка времени на экран в формате 00:00
  if (m<10) Then tmp_time := '0'+IntToStr(m) Else tmp_time := IntToStr(m);
  if (s<10) Then Label1.Caption := tmp_time + ':0'+IntToStr(s) Else Label1.Caption:=tmp_time+':'+IntToStr(s);

  if ((m>0) or (s>=0)) Then
    begin
      if s>=0 Then dec (s);
      if ((s<0) and (m>0)) Then begin dec (m); s:=59; end;
    end
  Else If ((m<=0) and (s<=0)) Then
    begin
      Timer1.Enabled := False;
      Panel1.Visible:=True;
    end;

end;
Ответить с цитированием