Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Посоветуйте что-нибудь, компонент не хочет работать в службе..   Найти похожие ветки 

 
AV ©   (2012-02-19 13:25) [0]

Есть компонент. dcu + демка.
Накидал программку свою, работает нормально. Нажимаю кнопки, нужные поля компонента принимают нужные мне значения.
Попытался сделать ее многопоточной - компонент неожиданно выдал ShowMessage"Допустим только один экземпляр меня"
Ладно, не беда. Сделал многопроцессной. Работает.

Теперь попытался в сервис переделать
доходит до определенной строки, и ничего далее не происходит. Служба не запускается, если верить оснастке ос.
procedure TTest_Elcom.ServiceStart(Sender: TService; var Started: Boolean);
begin
 try
   FElcom := TElcomCom.Create(nil);
   FElcom.Init("192.168.101.113", 5005, 5000, ExtractFilePath(ParamStr(0)));
       LogMessage(" 5555555555555 " , EVENTLOG_INFORMATION_TYPE, 0, 1);
   FElcom.Open; //- доходит до определенной строки
       LogMessage(" 6666666666666 " , EVENTLOG_INFORMATION_TYPE, 0, 1);
 except
   on E:Exception do
    LogMessage(" TTest_Elcom ERROR " + E.Message, EVENTLOG_INFORMATION_TYPE, 0, 1)
 end;
 Started := True;
end;

в логе последнее что написано  - "5555555555555 ". "TTest_Elcom ERROR" - нет нигде.
Есть подозрение, что он опять какой то ShowMessage выводит..
Но как это узнать? Как узнать, почему из приложения метод open работает, а из сервиса не хочет.

Смысл компанента - по определенному ip-port послать данные, получить ответ, проанализировать, выставить логическое свойство.


 
AV ©   (2012-02-19 13:27) [1]


> Сделал многопроцессной

что б не возникало подозрений - тупо запускается несколько раз, используя разные ini файлы


 
Игорь Шевченко ©   (2012-02-19 13:30) [2]

Компонент, который выдает ShowMessage недопустимо использовать в сервисе. Точнее, допустимо, но задавать по этому поводу вопросы - уже не допустимо.
В качестве отладки разреши сервису взаимодействовать с рабочим столом


 
AV ©   (2012-02-19 13:38) [3]


> Компонент, который выдает ShowMessage недопустимо использовать
> в сервисе.

да..читал..
но если не пойдет по той ветке, которая SM выдаёт?
Все равно нельзя?  (Какой-нибудь код инициализации соотв.модуля "испортит"?)


 
AV ©   (2012-02-19 13:42) [4]


> Игорь Шевченко ©   (19.02.12 13:30) [2]

спасибо!

> В качестве отладки разреши сервису взаимодействовать с рабочим
> столом

точно! Он еще одну dll не видел из комплекта поставки, о чем и сообщал ShowMessage..

Работает! :) Спасибо!


 
AV ©   (2012-02-19 15:14) [5]

Хотел было обмануть - завести в одном exe второй сервис..
точно такой же.
нет, опять ругается ShowMessage"Допустим только один экземпляр меня"

Как же некрасиво иметь по одному сервису, в своем собственном exe
для, в общем-то,  однотипной операции..

ElcTcpClient.dcu - вот его фамилиЁ.
Если кто-то в курсе о чем, бодался с ним и заборол - черкните, плз..


 
Игорь Шевченко ©   (2012-02-19 15:30) [6]

Связаться с автором компонента не помогает ?


 
DVM ©   (2012-02-19 15:45) [7]


> нет, опять ругается ShowMessage"Допустим только один экземпляр
> меня"
>

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


 
Anatoly Podgoretsky ©   (2012-02-19 16:02) [8]

> DVM  (19.02.2012 15:45:07)  [7]

Надо еще кричалку добавить, подойди, я тебе такое покажу


 
Slym ©   (2012-02-20 07:21) [9]

если лень ломать компонент,
то протокол ModBus легко повторить
TCP ModBus тоже не проблема

если лень разбираться с модбасом то тупо снифить и повторить


 
AV ©   (2012-02-20 09:17) [10]


> Игорь Шевченко ©   (19.02.12 13:30) [2]

не знаю с кем..
Думал, что автор - производитель оборудования. Позвонил/написал - ответили, что ответят позже. До сих пор отвечают.. Похоже, сами не знают.


> Slym ©   (20.02.12 07:21) [9]

да, можно.
Потом.. :) 25го надо уже что бы все работало в промышленном варианте

>> DVM ©   (19.02.12 15:45) [7]
Ну да, придется оставить как программу пока.


 
Slym ©   (2012-02-20 12:18) [11]

AV ©   (20.02.12 9:17) [10]
25го надо уже что бы все работало в промышленном варианте

Деймос-грунт?
Хороший программист пишет программу всю жизнь сидя на окладе
Плохой пишет рабочий вариант за неделю и подписывает все акты получая разово на руки 5 тыщ


 
AV ©   (2012-02-20 13:09) [12]


> Slym ©   (20.02.12 12:18) [11]
> Деймос-грунт?

Нет.

Есть такое понятие - надо.
Так вот надо что бы работало 25го. Так подозреваю, что вообще-то 1го, но начальник заложил сроки. Тем не менее,  надо что бы работало 25го.
Разумеется, с выкладкой соображений, что это сыро и гарантий нет.
Но 25го работать будет.


> пишет программу всю жизнь

у нас это непозволительная роскошь.



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

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.064 c
2-1332312465
TKN
2012-03-21 10:47
2013.03.22
UpdateSql


15-1340456276
stas
2012-06-23 16:57
2013.03.22
Свою кнопку в чужое приложение


11-1244440437
BMouradov
2009-06-08 09:53
2013.03.22
Снятие фокуса


2-1340372027
LDV
2012-06-22 17:33
2013.03.22
frag&drop


10-1178194054
Егоров А.Н.
2007-05-03 16:07
2013.03.22
Копирование формата ячейки в Excel из Delphi