|
Вопрос # 4 221/ вопрос открыт / |
|
Здравствуйте, эксперты!
Пожалуйста помогите с программкой! Очень нужна помощь! Я тут для себя делаю пограммку обратного отсчёта. То есть хочу сделать сделать таймер чтоб мог отсчитывать не только минуты и секунды, но и часы.
Так то всё работает, но проблема с отсчётом. Как правильно делать такую программу?
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: Andrew_Cyber (статус: Посетитель)
Вопрос отправлен: 24 мая 2010, 18:28
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 9; последнее сообщение — 25 мая 2010, 21:10; участников в обсуждении: 4.
|
lx (статус: Посетитель), 24 мая 2010, 19:03 [#1]:
жесть xD
|
|
min@y™ (статус: Доктор наук), 24 мая 2010, 20:57 [#2]:
Как дочитал до...
If (UpDown1.Position = 0) or (UpDown1.Position = 5) or (UpDown1.Position = 6) or
(UpDown1.Position = 7) or (UpDown1.Position = 8) or (UpDown1.Position = 9) or
(UpDown1.Position = 10) or (UpDown1.Position = 11) or (UpDown1.Position = 12) or
(UpDown1.Position = 13) or (UpDown1.Position = 14) or (UpDown1.Position = 15) or
(UpDown1.Position = 16) or (UpDown1.Position = 17) or (UpDown1.Position = 18) or
(UpDown1.Position = 19) or (UpDown1.Position = 20)
then StaticText1.Caption:='часов';
If (UpDown1.Position = 1) or (UpDown1.Position = 21)
then StaticText1.Caption:='час';
If (UpDown1.Position = 2) or (UpDown1.Position = 3) or (UpDown1.Position = 4) or
(UpDown1.Position = 22) or (UpDown1.Position = 23) or (UpDown1.Position = 24)
then StaticText1.Caption:='часа';
...то дальше читать не стал, ибо боюсь необратимых повреждений своей психики.
В паскале есть такая хренотень, называется оператор "case". Благодаря этой хренотени этот кошмар можно заменить на это:
case UpDown1.Position of
1, 21: StaticText1.Caption:='час';
2..4, 22, 23: StaticText1.Caption:='часа';
else StaticText1.Caption:='часов';
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Andrew_Cyber (статус: Посетитель), 25 мая 2010, 07:24 [#3]:
min@y™: ну это не суть важно. главное чтоб часы отсчитывал.
|
|
min@y™ (статус: Доктор наук), 25 мая 2010, 08:14 [#4]:
Цитата (Andrew_Cyber):
ну это не суть важно. главное чтоб часы отсчитывал.
Я вижу у тебя там 3 переменных, храняших часы, минуты и секунды. Выкинь их нафиг, вместо них заведи одну переменную - кол-во секунд, оставшихся до конца отсчёта, и по таймеру декрементируй. А чтобы вывести на экран кол-во оставшихся часов/минут/секунд, вычисляй их из общего кол-ва оставшихся секунд.
Hours:= TotalSeconds div 3600;
Minutes:= (TotalSeconds mod 3600) div 60;
Seconds:= TotalSeconds mod 60;
И убери эти жуткие if ... or ... or ... or ... then ... Это ж кашмар и ужос!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Andrew_Cyber (статус: Посетитель), 25 мая 2010, 17:35 [#5]:
спасибо за помощь
|
|
min@y™ (статус: Доктор наук), 25 мая 2010, 17:50 [#6]:
Цитата (Andrew_Cyber):
спасибо за помощь
Что, помогло?
Покажи, что получилось.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Вадим К (статус: Академик), 25 мая 2010, 20:52 [#8]:
додуматься - сорцы в картинке выложить...
Галочка "подтверждения прочтения" - вселенское зло.
|
|
min@y™ (статус: Доктор наук), 25 мая 2010, 21:10 [#9]:
Цитата (Вадим К):
додуматься - сорцы в картинке выложить...
Сначала он выложил их тут текстом. Получилось хуже. Русские комментарии превратились в ХЗЧ. Наверное, при копировании раскладка была английской.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|