![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Interactive service [D6, Win2k, WinXP]
Agt © (2006-02-09 14:49:00)Подскажите плз. как правильно организовать сервис с использованием MDI формы для его управления. Я вроде сделал, определяет вход пользователя, вешает икону, но проблема с передачей событий форме. Для работы MDI требуется установленное Application.MainForm, оно, ест-но отличается от App сервиса. При старте я принудительно иницирую App форм, создаю форму, в обработчике событий сервиса вызываю ProcessMessages, но при нажатии на икону форма все-равно не получает событий. Старт/стоп работает нормально. Может я в чем-то в корне не прав ?
Agt (2006-02-09 17:43:00) [1]Все-равно спасибо, было приятно пообщаться. На всякий случай оставлю аську: 9013066.
Agt (2006-02-09 17:28:00) [2]Мне тут во всем приходится разбираться самому, и конечно многого еще не знаю.... Не слишком много советчиков, а работы погорло....
Digitman (2006-02-09 17:23:00) [3]
> А жаль
А ты думал нахалявку обойтись ?
Нет, брат) ... Сервис есть сервис, у него свои особенности .. А GUI это GUI ..
Agt (2006-02-09 17:20:00) [4]Возможно.
Agt (2006-02-09 17:19:00) [5]В дальнейшем, конечно я это все-равно разделю, и скорее всего, как и клиентское приложение через socket, но все это дается немалой кровью, поэтому это еще не скоро... А жаль...
Agt (2006-02-09 17:19:00) [6]В дальнейшем, конечно я это все-равно разделю, и скорее всего, как и клиентское приложение через socket, но все это дается немалой кровью, поэтому это еще не скоро... А жаль...
Digitman (2006-02-09 17:17:00) [7]
> все хорошо, за исключением того, что многие свойства объектов
> содержат обработчики, которые в свою очередь туда не запихнешь
Их и не надо туда "пихать". Что-то важное ты не понимаешь в MMF...
> Первые два перечисленных способа не пробовал
Какие имеются ввиду ?
Agt (2006-02-09 17:14:00) [8]Это я уже пробовал. Но тяжело организовать связь между оъектами сервиса и минитора. Пробовал через расшаринную память, все хорошо, за исключением того, что многие свойства объектов содержат обработчики, которые в свою очередь туда не запихнешь. А организовавать черезь TCP/IP муторно... сшишком много появляется различных дополнительных управляющих комманд... Через TInterface тоже муторно... Первые два перечисленных способа не пробовал.
Digitman (2006-02-09 17:07:00) [9]В любом случае без основательной переделки приложения-сервера не обойтись.
У тебя не менее двух концептуальных путей :
1. Разделить серверное приложение на два:
- первое (сервис) обеспечивает ключевую функциональность (связь с оборудованием, БД и т.п.)
- второе (монитор сервиса - обычное MDI-приложение) обеспечивает интерактивное управление работой сервиса
Взаимодействие между сервисом и монитором осуществить посредством любого подходящего механизма/технологии - MMF, NamedPipes, TCP/IP.
2. Реализовать в коде серверного приложения две функциональности:
- функциональность сервиса (см. выше);
- функциональность монитора - обычного приложения
В псевдокоде:
IF ПриложениеСтартованоКакСервис THEN
Старт_Как_Сервис
ELSE
Старт_Как_Обычное_Приложение
Agt (2006-02-09 16:50:00) [10]И все же ... больной вопрос: это возможно ? Если да, то как ?
Agt (2006-02-09 16:48:00) [11]Я конечно изначально знал, что лучше полностью изолировать сервер от интерфейса, но слишком там много завязано между объектами, оборудованием... и написание приложения затянулось бы еще на неограниченный период... В дальнейшем, конечно может я и переделаю... Но пока приходится довольствоваться тем, что есть... и так мозги не резиновые...
Agt (2006-02-09 16:35:00) [12]но к управлению с клиентской стороны накладывается еще некоторое обслуживание со стороны самого серверного приложения через MDI интерфейс....
Agt (2006-02-09 16:33:00) [13]о... там много чего происходит... но вся каша происходит с оборудованием....
Digitman (2006-02-09 16:29:00) [14]Что происходит в доп.потоках ?
Agt (2006-02-09 16:28:00) [15]всмысле наверное я не так понял...
клиенты подсоединяются по сокету, их запросы обрабатываются и т.п.
Agt (2006-02-09 16:26:00) [16]да
Digitman (2006-02-09 16:14:00) [17]Сервер мультипоточный ?
Agt (2006-02-09 16:08:00) [18]серверное
Digitman (2006-02-09 16:06:00) [19]Какое из приложений (см. http://keyout.ru/programm.htm) могло бы стать, по твоему мнению, сервисом - клиентское или серверное ?
Agt (2006-02-09 16:00:00) [20]Тогда как ? (всмысле с помощью чего ?)