Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Interactive service [D6, Win2k, WinXP]


Страницы:   1 2

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]

Тогда как ? (всмысле с помощью чего ?)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо