Время НЕактивности приложения

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Время НЕактивности приложения

Сообщение Little_Roo » 12.04.2012 14:59:10

Встала в полный рост проблема :( :
Есть база на Firebird
Есть клиентские приложения
Надо: - если пользователь после коннекта некое время (к примеру, 15 минут) не производил никаких действий с приложением, как то не редактировал, не удалял записи, не переключал закладки и т.п. - разорвать соединение НЕ закрывая приложение :shock:

В Delphi вроде использовалось Application.OnMessages, а Лазаре как?
Ткните носом, желательно с примером.

Я не очень наглею? Просто не попадал в такую ситуацию, так что опыта <= 0
Можно не кроссплатформенно, т.к. все крутится на WinXP

Вот нарыл ... http://www.delphicode.org/delphi/system_idle_time.htm
Ругается на отсутствие TLastInputInfo, GetLastInputInfo :(
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Время НЕактивности приложения

Сообщение Xenar » 12.04.2012 15:46:17

дубль
Аватара пользователя
Xenar
постоялец
 
Сообщения: 158
Зарегистрирован: 08.06.2011 12:54:07

Re: Время НЕактивности приложения

Сообщение iskander » 12.04.2012 15:50:24

iskander
энтузиаст
 
Сообщения: 624
Зарегистрирован: 08.01.2012 18:43:34

Re: Время НЕактивности приложения

Сообщение svk12 » 12.04.2012 18:38:57

Наверно, есть смысл покурить TIdleTimer со страницы палитры компонентов "System".
svk12
постоялец
 
Сообщения: 409
Зарегистрирован: 09.06.2008 18:42:47

Re: Время НЕактивности приложения

Сообщение Little_Roo » 12.04.2012 18:40:54

svk12 писал(а):Наверно, есть смысл покурить TIdleTimer со страницы палитры компонентов "System".

Так как его курить?????????

Добавлено спустя 1 час 7 минут 35 секунд:
Xenar писал(а):дубль


Кого - куда - во что - ?
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Время НЕактивности приложения

Сообщение WAYFARER » 12.04.2012 20:44:08

А если как то так? Например если юзер не жмет клавиши(Не двигает мышь) - значит программа простаивает?
Код: Выделить всё
var  Time: TTime;
...
procedure TForm1.FormShow(Sender: TObject);
begin
   KeyPreview:=True;
   timer1.Enabled:=True;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
  Time:=Now;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   if (Now - Time)> StrToTime('00:00:30') then
    begin
    ShowMessage('Ты не работал 30 секунд');
    timer1.Enabled:=False;
    end;
end;



Т.е. при соединении с базой записываем в переменную Time текущее время и запускаем таймер.
Выбираем и обрабатываем ключевые события при которых будет обновляться переменная Time.
Таймер проверяет промежуток между текущим временем и временем последней активности в Time, и когда будет достигнут нужный промежуток времени - рвет соединение и останавливается.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Время НЕактивности приложения

Сообщение svk12 » 12.04.2012 23:50:57

Little_Roo писал(а):Так как его курить?????????


Попробовать использовать, например...
svk12
постоялец
 
Сообщения: 409
Зарегистрирован: 09.06.2008 18:42:47


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 229

Рейтинг@Mail.ru
cron