Вопрос № 39967: Такой вопрос: как можно подключать компоненты (те, что в References указываются) программно? То есть имеется два компьютера: на одном установлен голосовой движок, на другом нет. Пользователь сам выбирает пользуется он голосовым движком или нет, соотв...
Вопрос № 39.967
Такой вопрос: как можно подключать компоненты (те, что в References указываются) программно? То есть имеется два компьютера: на одном установлен голосовой движок, на другом нет. Пользователь сам выбирает пользуется он голосовым движком или нет, соответственно компонент подключается или нет. Нужно чтобы на втором ПК не выскакивала ошибка о ненайденом компоненте
Решение установить движок на втором ПК не пройдёт, т.к. их не два, программа должна быть универсальной, да и лень просто.
Отвечает: EPDSota
Здравствуйте, Чилин Андрей Иванович!
Может поможет переопределение ошибки:
"On error goto ..."
--------- Открыть глаза навстречу солнцу
Ответ отправил: EPDSota (статус: Специалист)
Ответ отправлен: 11.04.2006, 18:24
Отвечает: Залетин Виталий Викторович
Здравствуйте, Чилин Андрей Иванович!
Выход в использовании таких вещей:
Dim objSound as Object
on error goto next
set objSound=CreateObject("Sound.Object")
if err then
'Ошибка создания объекта - либо неправильная регистрация, либо нет такого объекта в системе
End If
Далее по тексту программы перед использованием объектной переменной проверять ее на Nothing:
If not objSound is Nothing Then
'Делаем чегото там со звуком
End If
При таком раскладе нужный Вам объект можно вообще не подключать ч/з References. Я так делаю в своей проге на работе с отчетами: получается расширяемая программа (по типу плагинов) - добавляю в систему нужную ДЛЛку, регистрирую ее, потом в нужном каталоге ищу все файлы ДЛЛ и составляю список их (тут надо, чтоб имя файла имело то же имя, что и название проекта Вашего в процессе разработки и один класс имел какое-либо общее имя, которое будут использовать для вторжения извне) и все. Правда тут недостаток один:
надо знать все методы и свойства объекта и отказаться от событий - тогда все покатит. В Вашем случае можно на этапе проектирвания подключить объект как обычно, но потом убрать ссылку на объект и описать все работающие с ним объектный переменные как Object. От событий, увы, прийдется отказаться.
--------- Учиться никогда не поздно. Особенно программированию!