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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.072 c
15-1351865113
TObject
2012-11-02 18:05
2013.03.22
DBGrid


2-1340259411
Теркин
2012-06-21 10:16
2013.03.22
Сохранение объектов в базе данных


2-1331146552
Delhessh
2012-03-07 22:55
2013.03.22
Одна процедура не видит другую!


4-1260893670
QAZ
2009-12-15 19:14
2013.03.22
Hook&Uac


2-1334881617
Артём
2012-04-20 04:26
2013.03.22
Отображение страницы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский