| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > события компоненты из DLL |
| Автор: SHKoder 14.8.2013, 10:13 | ||
| подскажите, пожалуйста. хочу сделать DLL и в ней обработчик одной из примученной компоненты. хитрость вся в том, что методы этой компоненты живут отдельно от ее событий. другими словами компонента общается с аппаратурой, которая дает отклик через некоторое время, (в зависимости от нагруженности) и методом Connect() я подключаюсь к ней, а в неком событии OnConnected(...) применяются параметры моей сессии, и мне нужно их передать обратно из DLL на вызываемое приложение. подскажите, пожалуйста, как это можно реализовать? буду благодарен фрагментам кода. не понимаю, что не так я сделал. пожалуйста, подскажите, как сделать... опыта написания длл оберткой компоненты практически нет.
компилятор ругается на строке OnDelivered := Delivered; не задекларирована Delivered далее ругается на переменную connectionCallId, тоже не задекларирована. но именно она возвращает мне значение из события компоненты. другими словами, это монитор событий на телефоне. вот и получается, что обратиться к DLL с инициированием подключения к аппарату, сделать не сложно. далее вызов с аппарата на другой телефон инициирует сессию, и ид этой сессии нужно вернуть на клиент. и событие это отрабатывает не моментально при вызове. более того, это событие Delivered, должно возвращать клиенту connectionCallId при входящем звонке извне, именно тогда, когда пользователь о фигне не думает, т.е. подключение к аппарату свершено, и более не происходит никаких вызовов. уважаемые опытные, подскажите, пожалуйста, как завести это чудо. спасибо |
| Автор: Poseidon 14.8.2013, 10:50 |
| Ну тут вообще не понятно откуда у тебя такие вопросы, это же основы ООП. У тебя в конце кода реализация этого метода, а где его описание? Описание должно быть там, где описывается TConector, а не тут. Либо создавай наследника TConector и перекрывай Delivered уже тут, но все-равно описание должно быть уже у наследника. |
| Автор: SHKoder 14.8.2013, 11:45 | ||
| не Бог весть как, но кое как мне удалось реализовать задуманное. верней сказать первую половину. да и не очень мне нравится способ. как-то корявенько выходит.
теперь вопрос то более конкретный. категорически не нравится sleep(10000); и второе, событие OnCSTADelivered может наступить без моего вмешательства. т.е. к аппарату я подключился, монитор включил и сижу жду, когда мне кто-нить позвонит. тогда выполняется событие и ConCallId := connectionCallId; должен передаться в клиентское приложение. как вот это сделать??? спасибо |
| Автор: Illusion Dolphin 14.8.2013, 20:34 | ||
А оно вообще компилируется? |
| Автор: SHKoder 15.8.2013, 08:32 | ||
т.е. другие методы объекта Вас не смущают? конечно компилируется. просто я опечатался в одном апострофе. думается мне это не критично для понимания сути. |
| Автор: Illusion Dolphin 15.8.2013, 08:55 | ||||||||
Нисколько. Сторонние методы без описания.
Мне тоже - убирайте его
Это хорошо или плохо? А как надо?
Как сделать что? Передать что-то куда-то, вызвать OnCSTADelivered без вашего участия? P.S. Задавайте чёткие вопросы с чётким кодом, мне что-то вопрос в полной мере не понятен. |
| Автор: SHKoder 16.8.2013, 12:17 |
| отбой, спасибо, все получилось на ловушках событий |