![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 09.06.2012
Сообщений: 24
|
![]()
Всем доброго времени суток.
Нужно сделать следующее: Чтобы кнопку(Button), можно было нажимать через определенный промежуток времени, не зависимо от того, включена программа или нет. Например нажал на кнопку, текст отправился, а кнопка заблокировалась на часа 3. Через 3 часа, кнопка опять доступна и ее можно нажать. Как это можно реализовать? ![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Записываете дату/время нажатия кнопки в реестр (или в файл – на ваш выбор), а после по таймеру отслеживаете, прошло ли 3 часа с момента нажатия или нет (текущее время сравниваете с записанным в файле). Если прошло, то в свойство Enabled кнопки пишете True. Если нет - False
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 09.06.2012
Сообщений: 24
|
![]() Цитата:
При нажатии на кнопку, в реестр добавляется время(В часах, без секунд и минут), когда была нажата кнопка. Стоит таймер, который вычитает время из реестра(Добавленным временем, когда была нажата кнопка) с временем в данный момент. Если это время <=3, то Button1.Enabled:=true если нет то false. Это все хорошо, но в таймере стоит промежуток, то есть если в это время пользователь не успеет нажать кнопку, то она заблокируется. Что не так? |
|
![]() |
![]() |
![]() |
#4 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ну, у вас же прямое нарушение вашей же логики работы приложения:
Цитата:
Цитата:
>это время <=3, то Button1.Enabled:=false не так?.. |
||
![]() |
![]() |
![]() |
#5 | |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
![]() Цитата:
1. Если я нажал кнопку в 3:01 или в 3:59, то все равно запишется 3 часа? 2. Если я нажал кнопку сегодня в 3:00, то завтра в 3:01 она будет заблокирована? Пиши точное время с датой, например Код:
|
|
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 09.06.2012
Сообщений: 24
|
![]() Цитата:
Мне просто надо сделать так: 1. Зашел в программу, нажал на кнопку. 2. Пошел отсчет 3 часа и кнопка блокируется до истечения 3ех часов даже если программа выключена. 3. 3 Часа прошло,кнопка снова стала доступной. И т.д. И еще не понял, как сделать так, чтобы таймер не блокировал кнопку если ты ее не нажал. Ведь если зайти в программу отсчет уже пойдет. И еще, как сравнить дату добавления сообщения и дату сейчас. (26.09.2012 16:47:34 с другой такой же датой). Последний раз редактировалось Fiesko; 26.09.2012 в 16:52. |
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]() Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
кстати, я бы вообще не пользовался переводом TDateTime в строковое представление. На самом деле TDateTime == Double.
Можно прямо Double и сохранять. А потом считавать, да и сравнивать легче будет.. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Интервал между нажатиями. | werser | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 03.12.2010 17:22 |
интервал между датами | andrenisimus | БД в Delphi | 8 | 28.10.2010 14:05 |
Интервал между датами в структуре! | Telec | Общие вопросы C/C++ | 0 | 22.03.2010 20:55 |