|
#1
|
||||
|
||||
Timer
Допустим имеем следующий код в TForm1.FormCreate
Код:
Timer1.Interval := 5000 Вопрос: Как можно получить отсчет времени в Label1? |
#2
|
|||
|
|||
Отсчет чего? Какого времени?
Указанным кодом ты просто задаешь, что таймер будет срабатывать каждые 5 секунд. |
#3
|
||||
|
||||
Тогда уж ставь 500 или меньше, а не 5000. Затем переводишь текущее время в String и присваиваешь Label-у. Не забываем делать ему Update.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#4
|
||||
|
||||
Цитата:
Нужно сделать отсчет времени в 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; |
#5
|
||||
|
||||
Как пример, отчет одной минуты.
прописываешь в процедуре таймера: n:=n+1; Label1.caption:=inttostr(60-n)+' секунд!'; P.S. Естественно интервал ставишь секундный |
#6
|
||||
|
||||
Цитата:
|
#7
|
||||
|
||||
При запуске получаешь текущее время:
Код:
var Time : TDateTime; begin Time := Now; Код:
Now - Time; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#8
|
||||
|
||||
Цитата:
Код:
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; Всем спасибо за полемику! Последний раз редактировалось vah-smile, 25.01.2012 в 17:03. |