Обработчик события

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Гость
 

Обработчик события

Сообщение Гость » 08.10.2005 (Сб) 10:31

Есть проблема общения внутреннего com сервера(ATL VC++ 6) с VBA

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

Dim Report As Object
Set Report = CreateObject("ХХХХХ")
Report.OnTest = ???

пробывал передавать адрес процедуры басиковой и там в сях ее вызывать :lol: , типа callback, все отлично но почемуто получать параметры басиковские про цедуры отказывались, ну да ладно это конечно извращения.... но вот как все же динамически установить обработчик события?????

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 08.10.2005 (Сб) 10:40

Если все делать по правилам COM, то нужно объявить некий интерфейс IBack, в катором объявить эту процедуру.
А далее, клиент в своем классе должен реализовать этот интерфейс и передавать его в Report.OnTest.
А твой COM-сервер уже будет вызывать просто метод интерфейса IBack.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Гость
 

Сообщение Гость » 08.10.2005 (Сб) 15:03

Ну так так клиент на VBA то созадавать что-то в нем нет ни какого желания, а что стандартными средствами, воспользовавшись Events нельзя?

Гость
 

Сообщение Гость » 08.10.2005 (Сб) 15:12

Думаю что если COM поддерживает механизм событий(connection points) то по-моему логичноим воспользоваться и не выдумывать велосипед. :roll: Не думаю что проблема в басике динамически указать процедуру для обработки событий :shock:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.10.2005 (Сб) 16:51

dima_shapkin писал(а):Думаю что если COM поддерживает механизм событий(connection points) то по-моему логичноим воспользоваться и не выдумывать велосипед. :roll: Не думаю что проблема в басике динамически указать процедуру для обработки событий :shock:

Вроде бы нельзя :-(
А почему нужно именно динамически? Обработчик будет меняться?
Изображение

Гость
 

Сообщение Гость » 08.10.2005 (Сб) 17:01

Ну а какже если я создаю объект динамически, то и обработчик задаю динамически....

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.10.2005 (Сб) 17:32

dima_shapkin писал(а):Ну а какже если я создаю объект динамически, то и обработчик задаю динамически....

Прочитай мой ответ в другом топике.
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 69

    TopList