Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как избежать сообщений компилятора VBA? / 7 сообщений из 7, страница 1 из 1
23.03.2014, 23:58
    #38594096
Игорь_777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как избежать сообщений компилятора VBA?
Доброго времени суток, почтенные форумчане! Я пытаюсь разобраться со следующей ситуацией...
Итак, в форме есть код, который производит печать выбранного листа в PDF посредством библиотек установленного на компьютере PDFCreator`а.
Для того, чтобы код функционировал нормально, необходим установленный в системе принтер PDFCreator. В проекте я включаю ссылку на его библиотеку. В форме объявляю событие готовности/неготовности принтера к печати и т.п.

Собственно, когда все компоненты на моем компе присутствуют, код работает чисто. Но, когда я тестирую код на другом компе, где нет установленного PDFCreator`а, компилятор сразу же ругается на строку, описывающую событие несуществующего принтера. Как-то так.

Вопрос- а можно ли как-то обойти эту неприятную ситуацию? Я вижу это так:

1.После запуска кода проверить наличие библиотеки PDF- принтера в Refrences. Если библиотека обнаружена, каким-то образом создать нужное событие. Возможно ли это?
2. Если библиотека не обнаружена, флажком деактивировать часть кода по работе с принтером.

Как же быть с событиями несуществующих компонентов? Компилятор VBA сразу ругается.
...
Рейтинг: 0 / 0
24.03.2014, 00:23
    #38594098
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как избежать сообщений компилятора VBA?
Используйте позднее связывание, т.е. вместо
Код: vbnet
1.
Dim PDFCr As New pdfcreator.printer 'условно

пишите
Код: vbnet
1.
2.
3.
4.
5.
Dim PDFCr As Object, noPDFCr As Boolean
On Error Resume Next
Set PDFCr = CreateObject("pdfcreator.printer") 'условно
If Err Then noPDFCr = True 'флаг отсутствия принтера
Err.Clear
...
Рейтинг: 0 / 0
24.03.2014, 00:29
    #38594100
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как избежать сообщений компилятора VBA?
С событиями, правда, облом - т.е. можно, но сложно.
...
Рейтинг: 0 / 0
24.03.2014, 00:53
    #38594105
Игорь_777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как избежать сообщений компилятора VBA?
КазанскийИспользуйте позднее связывание, т.е. вместо
Код: vbnet
1.
Dim PDFCr As New pdfcreator.printer 'условно

пишите
Код: vbnet
1.
2.
3.
4.
5.
Dim PDFCr As Object, noPDFCr As Boolean
On Error Resume Next
Set PDFCr = CreateObject("pdfcreator.printer") 'условно
If Err Then noPDFCr = True 'флаг отсутствия принтера
Err.Clear



Спасибо за ответ! Собственно, проблема то не в определении наличия компонента и исключения выполнения "ошибочного " кода, а в событиях... )). Возможно ли программно создать строчку события в области объявления на уровне формы через средства IDE?
Предположим, я создаю программно скрытую форму, в которой программно же создаю код обработки событий принтера и код работы с принтером. И после этого могу работать с принтером? Теоретически вроде должно получиться, а вот практически- можно ли таким образом, в реальном времени в процессе выполнения программы, объявить событие или произойдет ошибка?
...
Рейтинг: 0 / 0
24.03.2014, 00:59
    #38594109
Игорь_777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как избежать сообщений компилятора VBA?
Попутно возник вопрос от дилетанта. Ясно, он не раз обсуждался на форуме, но все-же...
Я так понимаю, всегда, когда ты не знаешь наверняка, будет ли доступен необходимый компонент на "чужом" компе, необходимо применять позднее связывание по методу указанному выше? Я применил код, который проверяет коллекцию Reference на наличие нужных мне компонентов, и соответственно, блокирую флажками те части кода, которые невозможно применить при отсутствии соотв. компонентов. Но я везде применял раннее связывание, а это, наверное, в таких случаях не есть гуд?)
...
Рейтинг: 0 / 0
24.03.2014, 12:22
    #38594378
_Дмит_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как избежать сообщений компилятора VBA?
Игорь_777всегда, когда ты не знаешь наверняка, будет ли доступен необходимый компонент на "чужом" компе, необходимо применять позднее связывание
Сами ответили, можно и по другому. Но обычно примененяют позднее связывание.
Ещё один плюс можно подключить разные версии компонентов одним кодом, в отличии раннего. Но есть и недостаток ввиде снижении быстродействия.
...
Рейтинг: 0 / 0
24.03.2014, 21:46
    #38595182
Игорь_777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как избежать сообщений компилятора VBA?
Спасибо за советы всем!)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как избежать сообщений компилятора VBA? / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]