![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| andrey_post |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 23.12.2003 Где: Екатеринбург Репутация: нет Всего: нет |
Ребята, мне необходимо в Label указать сколько в секунах осталось времени до выполения команды OnTimer в Timer1. Как сие воплотить в жизнь?
Timer1.Interval:=30000; //интервал 30 секунд --------------------
И что бы там не происходило, не стоит воспринимать жизнь слишком всерьёз, всё равно нам из неё живыми не выбраться!!! |
|||
|
||||
| term |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 22.1.2004 Репутация: нет Всего: нет |
Отображение оставшегося времени.
Сделай Interval := 1000; // 1 секунда Введи переменную = 30. В событии OnTimer уменьшай переменную на Round(Timer1.Interval/1000). Когда она станет <= 0, то переменная = 30, плюс необходимые команды. В конце OnTimer строка, например Label1.Caption := 'Осталось: ' + IntToStr(переменная) + 'c.'; |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
Можно просто завести таймер с интревалом 1 секунда и в его он таймер уменьшать эту переменную и отображать в лейбл, в он таймер первого таймера делать то что тебе надо
-------------------- --- |
|||
|
||||
| andrey_post |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 23.12.2003 Где: Екатеринбург Репутация: нет Всего: нет |
Так что ли? не канает...
--------------------
И что бы там не происходило, не стоит воспринимать жизнь слишком всерьёз, всё равно нам из неё живыми не выбраться!!! |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
При создании другого таймера со временем будет довольно-таки большая погрешность, можно как вариант создать отдельный поток в цикле выводить каждую секунду нужную информацию, примерно так:
Это сообщение отредактировал(а) <Spawn> - 26.1.2004, 14:37 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Можно сделать и такой вариант: Создаешь таймер с интервалом 1000 и заводишь глобальную переменную(равную, например, 0), когда ее значение достигнет 29, то выполняешь нужный код и обнуляешь ее.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
два таймера в приложении не редкость и работать должно нормалдьно -------------------- --- |
|||
|
||||
| Maverick |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: 2 Всего: 10 |
Есть такие функции замечательные MilliSecondsBetween, SecondsBetween и тому подобное DateUtils... Очень удобно... Запоминаешь в переменной момент OnTimer... И дальше Label1.Caption := IntToStr(MilliSecondsBetween(Time(), запомненное время)).... - сколько времени прошло с момента последнего срабатывания в милисекундах... ну скомбинируешь чего-нибудь...
|
|||
|
||||
| maxkazar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 26.1.2004 Где: Таганрог Репутация: нет Всего: нет |
А можно в принципе вообще сделать следующим образом,
привязаться к системному таймеру, функция GetSystemTime. В обработчике таймера OnTime засекать текущее время системного таймера функцией GetSystemTime а затем в обработчике события OnIdle проверять текущее состояние относительно того времени которого засекли и выводит разницу. |
|||
|
||||
| andrey_post |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 23.12.2003 Где: Екатеринбург Репутация: нет Всего: нет |
Я тут весь день карячусь с этим делом, выходит дрянь какая-то...
вот еще одна из задумок:
--------------------
И что бы там не происходило, не стоит воспринимать жизнь слишком всерьёз, всё равно нам из неё живыми не выбраться!!! |
|||
|
||||
| Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 4 Всего: 54 |
-------------------- ![]() |
|||
|
||||
| andrey_post |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 23.12.2003 Где: Екатеринбург Репутация: нет Всего: нет |
kesh, Спасибо большое!!!
--------------------
И что бы там не происходило, не стоит воспринимать жизнь слишком всерьёз, всё равно нам из неё живыми не выбраться!!! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |