| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Добавление к таймеру |
| Автор: Alkash 15.9.2009, 16:54 | ||||
Доброго времени суток господа. Возникла проблема с таймером. На форме Комбобокс с обработчиком onselect:
Срабатывает таймер :
В label выводится результат работы таймера. Собственно проблема в том, что у меня не выходит накинуть сверху времени. Когда уже работает таймер. Тоесть - Код устанавливает время выполнения, и отсчитывает время до окончания. А я не могу увеличить время выполнения в процессе, пробовал увеличивать minutesleft(глобальная переменная) - не корректно. Подскажите - как мне реализовать подобную задачку? |
| Автор: Romikgy 15.9.2009, 17:25 |
| остановить таймер , изменить значения, запустить таймер |
| Автор: Alkash 15.9.2009, 19:46 |
| Необходимо на лету изменять...не изменять, а добавлять...Чтобы не начать заново |
| Автор: Romikgy 15.9.2009, 20:12 |
| более точно опишите задачу, и более полный код покажите , плюс у таймера какой интервал срабатывания |
| Автор: Alkash 15.9.2009, 20:18 |
| Задача - пишу программу управления небольшим интернет кафе. Приведёный код - отсчитывает оставшееся время работы удалёного компьютера. Тоесть в боксе выбирают - от часа до 12 часов, и поехал отсчёт работы. В приведёном - всё работает прекрасно. А вот с продлением работы компьютера(допустим пользователь оплатил ещё полчаса) - большие проблемы. Интервал таймера 1000. |
| Автор: Romikgy 15.9.2009, 21:11 |
просто добавить к этой переменой полчаса , что нельзя? |
| Автор: Alkash 15.9.2009, 22:10 |
| Пробовал, не верно получается. Допусти по таймера - 2:45:39 - при накидывани 30 минут - просто округляется до 3: 00:00 |
| Автор: THandle 15.9.2009, 22:19 | ||
| Alkash, а почему бы не попробовать работать с TDateTime? Типа:
|
| Автор: Alkash 15.9.2009, 22:20 |
| А если изменится системное время?) Вот поэтому и бьюсь с внутренним таймером( |
| Автор: Romikgy 15.9.2009, 22:32 | ||
покажи как делаешь? |
| Автор: Alkash 15.9.2009, 22:57 |
| На работе код к сожалению) Но в кратце - беру минуты - и прибавляю их к minutesleft. |
| Автор: Romikgy 15.9.2009, 23:00 |
| с работы покажешь код |
| Автор: Keeper89 16.9.2009, 00:23 |
| Я бы считал все в секундах, а не в минутах, если секунды нужны (судя по коду). Плюс можно перейти на раздельное вычисление часов, минут и секунд заодно убрав некошерные операции деления в таймере. Ну и ждем код. |
| Автор: Alkash 16.9.2009, 08:01 | ||||
Добавляю минуты к минутам
и обрабатываю во втором таймере с интервалом 1000
|
| Автор: Romikgy 16.9.2009, 10:04 |
по коду похоже что работаешь с секундами , да и таймер секундный |
| Автор: Alkash 16.9.2009, 10:10 |
| Точно, уплю...просто весь день работал с минутами - а под конец уже начал с секундами...Однако - как быть то в этой ситуации? Я уже чё только не перепробовал |
| Автор: Keeper89 16.9.2009, 10:10 | ||
| Как можно из MinutesLeft выражать секунды, там из попросту нет. Судя по коду работа ведется в секундах, а таймер идет в минутах Поэтому, чтобы прибавить 30 минут надо выразить это в секундах:
З.Ы. Я бы советовал привести все у секундам (если уже выбрали этот путь), чтобы код стал читаемым. Добавлено через 5 минут и 8 секунд Гы, Romikgy меня опередил |
| Автор: Alkash 16.9.2009, 10:18 | ||||
| MinutesLeft - переменная глобальная. И я как то не понимаю, чем
отличается от
|
| Автор: Keeper89 16.9.2009, 10:18 |
| З.Ы. И еще - если не хочется работать с TTime, можно сделать свой маленький класс и считать значения там с функциями декремента и добавления времени. Добавлено через 43 секунды Alkash, у меня инкремент в 30 минут работает исправно... |
| Автор: Alkash 16.9.2009, 10:28 | ||||
| MinutesLeft - переменная глобальная. И я как то не понимаю, чем
отличается от
Добавлено через 43 секунды Моя конструкция как-то не может этим похвастаться))) |
| Автор: Keeper89 16.9.2009, 10:33 | ||
А так
тоже не работает? |
| Автор: Alkash 16.9.2009, 10:35 |
| Неа, ни в какую |
| Автор: Keeper89 16.9.2009, 10:37 | ||
У меня в проекте только это:
|
| Автор: Alkash 16.9.2009, 10:43 |
| Вот собрал тестовую конструкцию. Которая не хочет работать) |
| Автор: Alkash 16.9.2009, 10:46 |
| А-а-а-а, заработало) Всем спасибо) |
| Автор: Keeper89 16.9.2009, 11:22 |
| В чем же было дело? |
| Автор: Romikgy 16.9.2009, 11:28 | ||
брекпоинты пробовал ? полностью тестовое )) даже пас файл девственно чист |