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

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

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

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

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

Сообщение OberonAR »

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

А теперь по теме. Пишу сервис (демон), в котором возникла необходимость работать с таймером. Стандартный Ttimer к сожалению не работает в сервисе (демоне), поскольку использует оконные сообщения коих у сервиса нет... Чем можно заменить таймер? Может есть готовый компонент или хотя бы наброски? Кто сталкивался с такой задачей, какие есть пути решения?
novo
новенький
Сообщения: 43
Зарегистрирован: 31.07.2011 21:35:10

Сообщение novo »

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

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

Взято из статьи http://freepascal.ru/article/lazarus/20090403120204/
Аватара пользователя
OberonAR
новенький
Сообщения: 73
Зарегистрирован: 08.02.2012 11:46:04
Откуда: Краснодарский край

Сообщение OberonAR »

Я читал эту статью, насколько я помню дело в использовании модуля interfaces? А можно без него? Без окон, так без окон! - хотелось бы
iskander
энтузиаст
Сообщения: 630
Зарегистрирован: 08.01.2012 18:43:34

Сообщение iskander »

В 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.
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

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

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

Сообщение Brainenjii »

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

Сообщение alexs »

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

Сообщение Brainenjii »

тоже неплохо ^_^ Тащить в зависимостях консольному приложению либы от гнома/кед
Аватара пользователя
OberonAR
новенький
Сообщения: 73
Зарегистрирован: 08.02.2012 11:46:04
Откуда: Краснодарский край

Сообщение OberonAR »

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



Во-во, хотелось бы избежать этого.
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

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

Сообщение OberonAR »

GAMER писал(а):NoGui


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

Сообщение GAMER »

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

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

Сообщение OberonAR »

И при этом я смогу также использовать interfaces? т.е. таймер получится использовать подключив interfaces, при этом ничего лишнего не потянется в программе? :shock:
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

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

Сообщение OberonAR »

Буду пробовать - спасибо!
Ответить