![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Господа программисты, помогите, плиз!
Ситуация такая: пишу программу для спортивных соревнований, соответственно, есть табло, на котором идет обратный отсчет времени (начальное значение таймера задается пользователем - 05:00, 04:00, 03:00, 02:00). Для таймера написала процедуру: Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var H, M, S: Integer;
begin
if i>0 then i:=i-1;
H := I div 360; // часы
M := (I - H) div 60; // минуты
S := (I - H*360 - M*60); // секунды
if s<10 then Label1.Caption:=IntToStr(M)+' : 0'+IntToStr(S)
else Label1.Caption:=IntToStr(M)+' : '+IntToStr(S);
if i=0 then
begin
Timer1.Enabled:=false;
sndPlaySound('timer.wav', SND_ASYNC);
end;
end;Код:
procedure TForm1.Label1Click(Sender: TObject);
begin
if timer1.Enabled=false then
begin
timer1.Enabled:=true;
Label1.Font.Color:=clGreen;
end
else
begin
timer1.Enabled:=false;
Label1.Font.Color:=clRed;
end;
end;после того, как таймер остановился, передаем его значение в программу. И вот проблема в следующем: если таймер остановлен, например, на значении 04:36, то программа работает корректно. При значении от 03:50 до 03:59 программа вылетает по ошибке. от 03:49 и меньше - опять все хорошо. Есть еще несколько интервалов, на которых выдается системная ошибка. При других значениях таймера при прочих равных условиях (тестирую на одних и тех же данных) программа работает корректно. Может быть, кто-нибудь с подобным сталкивался - где искать ошибку? у меня уже мозги дыбом стоят, если честно ![]() Последний раз редактировалось Admin, 09.08.2012 в 21:32. |
|
#2
|
||||
|
||||
|
Используй тип TTime. И просто вычитай его.
Последний раз редактировалось M.A.D.M.A.N., 09.08.2012 в 10:05. |
|
#3
|
|||
|
|||
|
Цитата:
ой, а можно подробнее - где TTime использовать? |
|
#4
|
||||
|
||||
|
ну устанавливаешь ему время 00:01:55 ну и вычитаешь.
описание типа и как с ним работать - см. справку дельфи. |
|
#5
|
|||
|
|||
|
Цитата:
ага, спасибо! попробую |
|
#6
|
||||
|
||||
|
Вывод в лайбу TimeToStr()
|
|
#7
|
||||
|
||||
|
Цитата:
А какая хоть ошибка то? |
|
#8
|
|||
|
|||
|
Цитата:
|