Форум: "Основная";
Текущий архив: 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.012 c