Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Вниз

Interactive service   Найти похожие ветки 

 
Agt   (2006-02-09 14:49) [0]

Подскажите плз. как правильно организовать сервис с использованием MDI формы для его управления. Я вроде сделал, определяет вход пользователя, вешает икону, но проблема с передачей событий форме. Для работы MDI требуется установленное Application.MainForm, оно, ест-но отличается от App сервиса. При старте я принудительно иницирую App форм,  создаю форму, в обработчике событий сервиса вызываю ProcessMessages, но при нажатии на икону форма все-равно не получает событий. Старт/стоп работает нормально. Может я в чем-то в корне не прав ?


 
Digitman ©   (2006-02-09 14:54) [1]

Для интерактивного взаимодействия с сервисом создай отдельно либо обычное GUI-приложение либо CPL.


 
Leonid Troyanovsky ©   (2006-02-09 14:59) [2]


> Agt   (09.02.06 14:49)  

> работает нормально. Может я в чем-то в корне не прав ?


Конечно. MDI формы уже давно не модны.
Кроме того, для управления сервером пользуют обычную (отдельно
стоящую программу) , которая может стартовать, например, при логоне.
Т.е., интерактивность серверу вовсе не нужна.

--
Regards, LVT.


 
Agt   (2006-02-09 14:59) [3]

Обычное приложение будет присутствовать дополнительно в исполняемых процессах, чего нехотелось бы.


 
Digitman ©   (2006-02-09 15:02) [4]


> Agt   (09.02.06 14:59) [3]


Тогда откажись от MDI.

Я вообще не понимаю, на кой ляд для этого потребовался именно Multiple Document Interface .. Какие такие в сервисе "документы" - ума не приложу)


 
Leonid Troyanovsky ©   (2006-02-09 15:02) [5]


> Agt   (09.02.06 14:59) [3]
> Обычное приложение будет присутствовать дополнительно в
> исполняемых процессах, чего нехотелось бы.


Оное приложение може быть, вообще, на другом компьютере.

--
Regards, LVT.


 
Agt   (2006-02-09 15:06) [6]

Ясно. Почему MDI ? Есть уже написанное приложение, основанное на нем, нужно переложить его на сервис.


 
Digitman ©   (2006-02-09 15:21) [7]


> Agt   (09.02.06 15:06) [6]


> нужно переложить его на сервис


Зачем ?


 
Leonid Troyanovsky ©   (2006-02-09 15:22) [8]


> Agt   (09.02.06 15:06) [6]


Как из убыточного хозяйства сделать прибыльное,
ничего в оном не меняя.

--
Regards, LVT.


 
Agt   (2006-02-09 15:28) [9]

:) Блин, ну пусть будет так, раз задача такая... :)
Хорошо, может я не модный, тогда подскажите, что нынче в моде ? :)


 
Digitman ©   (2006-02-09 15:31) [10]


> что нынче в моде ?


Нынче в моде отвечать на вопрос, зачем тебе понадобилось переделывать свое приложение в сервис ..


 
Leonid Troyanovsky ©   (2006-02-09 15:34) [11]


> Agt   (09.02.06 15:28) [9]
> :) Блин, ну пусть будет так, раз задача такая... :)


Дык в чем задача? Засунуть интерактивное приложение в сервис? :)
Ну, а если хочется клиент- MDI приложение - ради Бога.
В свое время, скажем, IRC клиенты были сплошь такими.

Только, кажется мне, что проще не смешивать в одно приложение
клиента для обычной работы, и клиента для администрирования.

--
Regards, LVT.


 
Agt   (2006-02-09 15:37) [12]

Приложение является серверным. Используется много различных внутренних подструктур, управляемых MDI интерфейсом, т.к. не все обрабатываемые функции требуются в ее клиентской части. Нужно все ЭТО переложить на сервис.


 
Digitman ©   (2006-02-09 15:42) [13]


> Нужно все ЭТО переложить на сервис


Зачем ?!
Зачем понадобилось делать сервисом вполне работоспособное обычное приложение ?
Вразумительно можешь объяснить ?)


 
Leonid Troyanovsky ©   (2006-02-09 15:42) [14]


> Agt   (09.02.06 15:37) [12]
> Приложение является серверным. Используется много различных
> внутренних подструктур, управляемых MDI интерфейсом, т.к.
>  не все обрабатываемые функции требуются в ее клиентской
> части. Нужно все ЭТО переложить на сервис.


Ну и переложи.
Те функции, которые клиенту выполнять не с руки, т.е., удобней выполнять
серверу(сервису), передаются последнему.
А всякие показы и иное взаимодействия с пользователем - у клинта.

--
Regards, LVT.


 
Agt   (2006-02-09 15:49) [15]


> Зачем ?!
> Зачем понадобилось делать сервисом вполне работоспособное
> обычное приложение ?
> Вразумительно можешь объяснить ?)

Может вы и правы. Мне все-ж самому интересно, как формируются приложения типа Outpost-a


 
Agt   (2006-02-09 15:52) [16]

... хотя конечно же оно не MDI... :) но мне впринципе интересно, возможно это сделать или нет...


 
Digitman ©   (2006-02-09 15:55) [17]


> возможно это сделать или нет


MDI ? Возможно. Но не нужно и не при поддерже VCL.


 
Agt   (2006-02-09 15:59) [18]

само приложение лежит на http://keyout.ru/programm.htm, если интересно, что это такое


 
Agt   (2006-02-09 16:00) [19]

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


 
Digitman ©   (2006-02-09 16:06) [20]

Какое из приложений (см.  http://keyout.ru/programm.htm) могло бы стать, по твоему мнению, сервисом - клиентское или серверное ?


 
Agt   (2006-02-09 16:08) [21]

серверное


 
Digitman ©   (2006-02-09 16:14) [22]

Сервер мультипоточный ?


 
Agt   (2006-02-09 16:26) [23]

да


 
Agt   (2006-02-09 16:28) [24]

всмысле наверное я не так понял...
клиенты подсоединяются по сокету, их запросы обрабатываются и т.п.


 
Digitman ©   (2006-02-09 16:29) [25]

Что происходит в доп.потоках ?


 
Agt   (2006-02-09 16:33) [26]

о... там много чего происходит... но вся каша происходит с оборудованием....


 
Agt   (2006-02-09 16:35) [27]

но к управлению с клиентской стороны накладывается еще некоторое обслуживание со стороны самого серверного приложения через MDI интерфейс....


 
Agt   (2006-02-09 16:48) [28]

Я конечно изначально знал, что лучше полностью изолировать сервер от интерфейса, но слишком там много завязано между объектами, оборудованием... и написание приложения затянулось бы еще на неограниченный период... В дальнейшем, конечно может я и переделаю... Но пока приходится довольствоваться тем, что есть... и так мозги не резиновые...


 
Agt   (2006-02-09 16:50) [29]

И все же ... больной вопрос: это возможно ? Если да, то как ?


 
Digitman ©   (2006-02-09 17:07) [30]

В любом случае без основательной переделки приложения-сервера не обойтись.

У тебя не менее двух концептуальных путей :

1. Разделить серверное приложение на два:
- первое (сервис) обеспечивает ключевую функциональность (связь с оборудованием, БД и т.п.)
- второе (монитор сервиса - обычное MDI-приложение) обеспечивает интерактивное управление работой сервиса

Взаимодействие между сервисом и монитором осуществить посредством любого подходящего механизма/технологии - MMF, NamedPipes, TCP/IP.

2. Реализовать в коде серверного приложения две функциональности:
- функциональность сервиса (см. выше);
- функциональность монитора - обычного приложения

В псевдокоде:

IF ПриложениеСтартованоКакСервис THEN
  Старт_Как_Сервис
ELSE
  Старт_Как_Обычное_Приложение


 
Agt   (2006-02-09 17:14) [31]

Это я уже пробовал. Но тяжело организовать связь между оъектами сервиса и минитора. Пробовал через расшаринную память, все хорошо, за исключением того, что многие свойства объектов содержат обработчики, которые в свою очередь туда не запихнешь. А организовавать черезь TCP/IP муторно... сшишком много появляется различных дополнительных управляющих комманд... Через TInterface тоже муторно... Первые два перечисленных способа не пробовал.


 
Digitman ©   (2006-02-09 17:17) [32]


> все хорошо, за исключением того, что многие свойства объектов
> содержат обработчики, которые в свою очередь туда не запихнешь


Их и не надо туда "пихать". Что-то важное ты не понимаешь в MMF...


> Первые два перечисленных способа не пробовал


Какие имеются ввиду ?


 
Agt   (2006-02-09 17:19) [33]

В дальнейшем, конечно я это все-равно разделю, и скорее всего, как и клиентское приложение через socket, но все это дается немалой кровью, поэтому это еще не скоро... А жаль...


 
Agt   (2006-02-09 17:19) [34]

В дальнейшем, конечно я это все-равно разделю, и скорее всего, как и клиентское приложение через socket, но все это дается немалой кровью, поэтому это еще не скоро... А жаль...


 
Agt   (2006-02-09 17:20) [35]

Возможно.


 
Digitman ©   (2006-02-09 17:23) [36]


> А жаль


А ты думал нахалявку обойтись ?

Нет, брат) ... Сервис есть сервис, у него свои особенности .. А GUI это GUI ..


 
Agt   (2006-02-09 17:28) [37]

Мне тут во всем приходится разбираться самому, и конечно многого еще не знаю.... Не слишком много советчиков, а работы погорло....


 
Agt   (2006-02-09 17:43) [38]

Все-равно спасибо, было приятно пообщаться. На всякий случай оставлю аську: 9013066.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.078 c
2-1140641543
вася
2006-02-22 23:52
2006.03.12
массив и сеть


15-1139918164
people
2006-02-14 14:56
2006.03.12
Загрузка linux


1-1139392424
ДенисНск
2006-02-08 12:53
2006.03.12
Очередь MSMQ


4-1134920592
ArtemESC
2005-12-18 18:43
2006.03.12
Панели...


2-1140886737
LostHero
2006-02-25 19:58
2006.03.12
TrackBar для Видео Плеера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский