Использование Ttimer в сервисе (демоне)

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

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

Использование Ttimer в сервисе (демоне)

Сообщение OberonAR » 07.03.2012 12:47:18

Привет всем! А женскую часть форума поздравляю с наступающим! Хорошего настроения вам и кода без багов! :P

А теперь по теме. Пишу сервис (демон), в котором возникла необходимость работать с таймером. Стандартный Ttimer к сожалению не работает в сервисе (демоне), поскольку использует оконные сообщения коих у сервиса нет... Чем можно заменить таймер? Может есть готовый компонент или хотя бы наброски? Кто сталкивался с такой задачей, какие есть пути решения?
Аватара пользователя
OberonAR
новенький
 
Сообщения: 73
Зарегистрирован: 08.02.2012 11:46:04
Откуда: Краснодарский край

Re: Использование Ttimer в сервисе (демоне)

Сообщение novo » 07.03.2012 13:11:26

3.6. Замечания из личного опыта

Использование таймера таит странную на первый взгляд ошибку. Если просто пытаться использовать таймер — то ничего не выйдет. Это обусловлено реализацией кода компонента таймера в Lazarus. Код таймера находится в библиотеках, которые относятся к визуальным виджетам — просто в разных операционных системах механизм таймеров реализован по разному. Из-за этого без подключения модуля Interfaces тут не обойтись. Первый раз я долго голову ломал — что не так?

Взято из статьи http://freepascal.ru/article/lazarus/20090403120204/
novo
новенький
 
Сообщения: 43
Зарегистрирован: 31.07.2011 21:35:10

Re: Использование Ttimer в сервисе (демоне)

Сообщение OberonAR » 07.03.2012 14:56:02

Я читал эту статью, насколько я помню дело в использовании модуля interfaces? А можно без него? Без окон, так без окон! - хотелось бы
Аватара пользователя
OberonAR
новенький
 
Сообщения: 73
Зарегистрирован: 08.02.2012 11:46:04
Откуда: Краснодарский край

Re: Использование Ttimer в сервисе (демоне)

Сообщение iskander » 07.03.2012 15:12:38

В FCL есть модуль fpTimer, но
Note that the system implementation will only work for timers
in the main thread, as it uses synchronize to do the job.
You need to enable threads in your application for the system
implementation to work.
iskander
энтузиаст
 
Сообщения: 623
Зарегистрирован: 08.01.2012 18:43:34

Re: Использование Ttimer в сервисе (демоне)

Сообщение alexs » 07.03.2012 19:20:50

OberonAR писал(а):А можно без него? Без окон, так без окон! - хотелось бы

А смысл?
Размер приложения не сильно увеличивается...
А так - меньше проблем.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Использование Ttimer в сервисе (демоне)

Сообщение Brainenjii » 07.03.2012 21:59:11

чтобы можно было подключиться на сервер без иксов и запустить приложение
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Использование Ttimer в сервисе (демоне)

Сообщение alexs » 07.03.2012 22:09:24

иксы не обязательны
достаточно соответсвующую библиотеку (от гнома или от кед поставить)
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Использование Ttimer в сервисе (демоне)

Сообщение Brainenjii » 07.03.2012 22:32:59

тоже неплохо ^_^ Тащить в зависимостях консольному приложению либы от гнома/кед
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Использование Ttimer в сервисе (демоне)

Сообщение OberonAR » 08.03.2012 11:47:54

Brainenjii писал(а):тоже неплохо ^_^ Тащить в зависимостях консольному приложению либы от гнома/кед



Во-во, хотелось бы избежать этого.
Аватара пользователя
OberonAR
новенький
 
Сообщения: 73
Зарегистрирован: 08.02.2012 11:46:04
Откуда: Краснодарский край

Re: Использование Ttimer в сервисе (демоне)

Сообщение GAMER » 08.03.2012 13:09:54

А если использовать NoGui, то вроде ж не тянеться ничего лишнего?
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Использование Ttimer в сервисе (демоне)

Сообщение OberonAR » 08.03.2012 13:28:45

GAMER писал(а):NoGui


ет чего это?
Аватара пользователя
OberonAR
новенький
 
Сообщения: 73
Зарегистрирован: 08.02.2012 11:46:04
Откуда: Краснодарский край

Re: Использование Ttimer в сервисе (демоне)

Сообщение GAMER » 08.03.2012 13:31:35

--widgetset=<widgetset>
or --ws=<widgetset>
перекрыть библиотеку
виджетов проекта, например,
gtk, gtk2, qt, win32, carbon.

Я использую lazbuild --ws=nogui
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Использование Ttimer в сервисе (демоне)

Сообщение OberonAR » 08.03.2012 13:42:33

И при этом я смогу также использовать interfaces? т.е. таймер получится использовать подключив interfaces, при этом ничего лишнего не потянется в программе? :shock:
Аватара пользователя
OberonAR
новенький
 
Сообщения: 73
Зарегистрирован: 08.02.2012 11:46:04
Откуда: Краснодарский край

Re: Использование Ttimer в сервисе (демоне)

Сообщение GAMER » 08.03.2012 13:47:00

По идее - да :)
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Использование Ttimer в сервисе (демоне)

Сообщение OberonAR » 08.03.2012 14:19:49

Буду пробовать - спасибо!
Аватара пользователя
OberonAR
новенький
 
Сообщения: 73
Зарегистрирован: 08.02.2012 11:46:04
Откуда: Краснодарский край

След.

Вернуться в Lazarus

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

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

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