Как сделать в ScriptControl процедуру для обработки события?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Как сделать в ScriptControl процедуру для обработки события?

Сообщение zHackLeX » 15.10.2006 (Вс) 9:38

Положим, есть форма и скриптконтрол на ней. Как можно привязать процедурку в скрипте к событию на некотором объекте Х класса Y?
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 15.10.2006 (Вс) 11:25

Никак. Данный переходник к IActiveScript половину возможностей не реализовывает.
Изображение

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 15.10.2006 (Вс) 13:33

руками сделать. ловишь событие - вызываешь скрипт соответствующий.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 15.10.2006 (Вс) 14:25

Это callback называется. То есть делаешь в скрипте класс с callback процедурой. Его передаёшь программе, и при возникновении события она эту процедуру через IDispatch и вызовет.
Изображение

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 15.10.2006 (Вс) 14:59

Это callback называется.


это по любому можно сделать.
я тупо имел ввиду: есть клик - вызываешь такую то функцию.
от задачи зависит и от требуемой степени универсальности.

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 17.10.2006 (Вт) 6:45

zHackLeX, это(http://bbs.vbstreets.ru/viewtopic.php?p ... t=#6629126) не то, что тебе надо?
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 18.10.2006 (Ср) 13:22

Большое сорри за неконкретное изложение.
Прога на VB. НА главной форме ScriptControl.
Ему передаём (уже во время выполнения проги) некий Object.
Можно ли дальше транслировать события этого Object'а в процедурки Scriptcontrol'a (положим, со специальными именами)?
То есть, назвав процедурку скрипта, например, LinkedObj_Click(),
мы тем самым сказали бы проге, что по клику на объекте эта процедурка должна выполниться...
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 18.10.2006 (Ср) 13:25

keks-n писал(а):делаешь в скрипте класс с callback процедурой

Что-то я, пардон, торможу. Делаешь класс? На VBScript? Можешь дать короткий пример класса в скрипте (хорошо, если с callback)?
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

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

Сообщение tyomitch » 18.10.2006 (Ср) 13:44

zHackLeX писал(а):Большое сорри за неконкретное изложение.
Прога на VB. НА главной форме ScriptControl.
Ему передаём (уже во время выполнения проги) некий Object.
Можно ли дальше транслировать события этого Object'а в процедурки Scriptcontrol'a (положим, со специальными именами)?
То есть, назвав процедурку скрипта, например, LinkedObj_Click(),
мы тем самым сказали бы проге, что по клику на объекте эта процедурка должна выполниться...

Нельзя. Для "обычных" событий нужно раннее связывание, которое скриптами (намеренно) не поддерживается.

А вот классы в скриптах объявлять можно ;-)
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 18.10.2006 (Ср) 14:27

Vj;yjzHackLeX, юзай vba :wink:
Лучший способ понять что-то самому — объяснить это другому.

zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 18.10.2006 (Ср) 15:32

Уже увидал! про классы...
А VBA сам бы рад, да вот тока покажите мне, как заставить vba работать в моём OCX- компоненте? Причём так, чтобы можно было из родительской программы кидать в VBA объекты с событиями?
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 18.10.2006 (Ср) 15:45

Качай VBA SDK
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 18.10.2006 (Ср) 15:59

VBA работает только с ActiveX EXE, тебе не подойдет. Придется тебе для каждого объекта с событиями писать класс, их отлавливающий и вызывающий соответствующие процедуры скрипта. Если это не твой объект.
Лучший способ понять что-то самому — объяснить это другому.

zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 19.10.2006 (Чт) 8:00

Ну... э... насчёт того, что VBA не работает с ОСХ - это, вообще говоря, не совсем так... кое-чего я таки добился - вот только кропотливая это работа - IDE рушится с вероятностью 50%/запуск.
Однако откомпилированная версия работает - Visual Basic Editor запускается, код пишется, всё вроде бы пучком - за исключением ряда моментов с добавлением своих объектов в VBA...
Вообще мне не до конца ясно, для чего это ограничение на "ActiveX EXE"... потому что могу сделать OCX, в который будет ввязан VBA ч/з АРС.

А вот возвращаясь к теме об событиях - нашёл тут ещё одну штуку в сети - вот:
http://msdn.microsoft.com/msdnmag/issue ... onnpoints/
И если я правильно понял, то пойманное таким образом событие легко транслировать в вызов процедурки скрипта...
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 19.10.2006 (Чт) 11:46

А как по твоему ConnectObject из WSH работает?
Изображение


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 47

    TopList