Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 564

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Я написал себе простенький копонент Кнопку-Таймер, наподобии кнопок как в программе загрузчике Download Master, т.е. через какое то время она отрабатывет нажатие на неё. Я никак не могу сделать чтобы таймер обратного отсчёта времени стартовал когда появляется форма с моей кнопкой. Конечно можно поставить запуск таймера на событие OnShow формы, но со временем об этом можно забыть и тогда будет неяснео, почему кнопка не работает. Может ли кто нибудь показать как это сделать.
С уважением, Алексей.

Хорт А.М. Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Хорт А.М. (статус: Посетитель)
Вопрос отправлен: 5 сентября 2010, 20:07
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 6 сентября 2010, 11:48; участников в обсуждении: 3.
Ерёмин А.А.

Ерёмин А.А. (статус: *Администратор), 6 сентября 2010, 09:38 [#1]:

Вообще не понял, в чём вопрос.

Цитата (Хорт А.М.):

можно поставить запуск таймера на событие OnShow формы, но со временем об этом можно забыть и тогда будет неяснео, почему кнопка не работает

?
SOA

SOA (статус: Посетитель), 6 сентября 2010, 09:42 [#2]:

В методе Paint кнопки сделай запуск таймера.
SOA

SOA (статус: Посетитель), 6 сентября 2010, 10:10 [#3]:

Чтоб не заморачиваться с таймером используй функцию sleep.

Sleep(500); // 500мс
Вадим К

Вадим К (статус: Академик), 6 сентября 2010, 10:19 [#4]:

sleep? в главном потоке? очень, очень умно. Ответ краток - так нельзя.
Галочка "подтверждения прочтения" - вселенское зло.
SOA

SOA (статус: Посетитель), 6 сентября 2010, 10:42 [#5]:

Почему таймер ведь тоже выступает как задержка, или я что то не правильно понял?
Вадим К

Вадим К (статус: Академик), 6 сентября 2010, 11:48 [#6]:

конечно неверно. sleep останавливает поток, в котором вызван. Так как это компонент, то он обязан быть в главном потоке. Остановить главный поток - это очень плохо. Sleep не дает работать потоку, в котором он запущен.

Таймер же работает по другому. Мы просто уведомляем операционную систему, что нам нужно послать одно (или посылать много с заданным интервалом) сообщение. А мы (то есть наша программа) можем пока заняться своей работой.
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 16:25
Выполнено за 0.02 сек.