![]() |
|
Модераторы: Akina |
![]()
|
|
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 8 Всего: 59 |
как я понимаю, script control может выполнять то, что могут выполнять скриптв в браузерах. Так вот, решил в качестве бонуса хорошему клиенту, добавить в свой очередной проект поддержку создания скриптов в программе. Все хорошо, даю доступ к окнам и объектам программы через специально для этого созданные классы(ну чтоб не совсем полностью изощряться могли). Так вот столкнулся с проблемой событий. Или я недостаточно прочел инфо об этом классе скрипта, или такое напрямую невозможно.
Короче вопрос: как добавить реакцию на события? Чтоб в скрипте можно было бы писать процедуры, которые вызываются при возникновении определенных событий. Т.е. например есть специальный класс Application, в нем я программирую доступы к различным классам и окнам программы, и в нем(а таке в других) описываю события, стандартным для VB спосбом(Event EvnName(Arguments) ). Хотелось бы чтоб при возникновении событий в моем классе, автоматом вызывались соответствующие процедуры(если есть конечно) в скрипте. Есть ли для этого в контроле стандартные средства? Хотя вобщем там и объектная модель не сложная, вроде все просмотрел, но ничего не нашел.... остановился на том, что в каждом классе там где генерируется событие, я вызываю ф-ию наподобии такой:
Это примерно, там еще проверка модулей идет... Можно ли как нибудь это автоматизировать? Чтоб проц-ы в скрипте сами вызывались... Кто знает? Всем спасибо заранее... Это сообщение отредактировал(а) -Mikle- - 1.10.2004, 21:02 -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Может тебе RaiseEvent нужен? Я сам им не разу не пользовался, но возможно это то, что тебе надо сделать
Вот немного информации из MSDN:
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 8 Всего: 59 |
Спасибо за ответ, cardinal, но наверно я не правильно выразился...
Для точности: я использую не тот Script Control, который контрол на форме, а тот который через Референс подключается. Есть небольшая разница между ними... RaiseEvent я использую в самих классах, в среде VB. Еще раз объясню... 1. у меня есть текстовый файл, в нем программа на VBскрипт(как макросы в Office), которую читает ScriptControl. Этот текстовый файл, в дальнейшем, будут изменять пользователи. 2. Есть в VB проекте классы, в них я реализую определенные методы, свойства, события. 3. Эти классы я подключаю к ScriptControl, используя его метод AddObject. После этого действия, в скрипте доступны эти классы, т.е. если в скрипте мы напишем msgbox MyClass.MyProperty, то получим значение свойства. Так же можно вызывать методы... 4. Теперь, в классах, которые я создал и подключил, есть события, которые генерируются этим вот RaiseEvent. 5. Далее, чтобы пользователь моей проги мог посадить на какое-нибудь событие какое-то действие(например соб-ие "AfterOpen"), я ищу в "скрипте" соответствующую ф-ию и запускаю ее(если нашел) через метод Run Меня интересует: можно ли настроить Script Control так, чтоб он сам вызывал соответствующие ф-ии описанные в скрипте, если в каком-то из подключенных к нему классов происходит событие. Ну чтоб не писать в каждом месте где есть RaiseEvent, дополнительные строки, реализующие запуск соответствующей ф-ии в макросе. Дело не в том что мне не хочется, я уже давно именно так и сделал, а просто у меня есть несколько немалых проектов, которые я постоянно поддерживаю и обновляю версию. Так вот чтоб в след. версиях включить скриптовую поддержку, и при этом не переворачивать весь проект, добавляя к нему кучу строк для поддержки скрипта, я хотел просто, добавить объекты в Script Control, а он сам пусть при возникновении событий вызывает ф-ии в пользовательском скрипте. -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 8 Всего: 59 |
Ну ладно, тогда поставим вопрос по другому... см. другой топик...
-------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |