|
Как узнать идентификатор Adobe reader для метода ДобавитьActiveX()? | ☑ | ||
---|---|---|---|---|
0
Prog111
21.01.16
✎
08:48
|
Хочу программно добавить на обычную форму эскиз PDF. Установил Adobe reader, теперь при действии "Форма" - "Вставить ActiveX" появился пункт "Adobe PDF Reader". Но я хочу создавать элемент формы программно, и потому элемент не вставляю изначально через форму, а пишу код для программной вставки:
СканПДФ = ЭлементыФормы.ДобавитьActiveX("Adobe PDF Reader", СканПДФ, Истина,); Но выходит ошибка: Ошибка при вызове метода контекста (ДобавитьActiveX) по причине: Неправильный идентификатор ActiveX (Adobe PDF Reader) Вопрос - как определить, какой должен быть идентификатор? |
|||
1
asady
21.01.16
✎
09:04
|
(0) AcroPDF.PDF.1 попробуй
|
|||
2
ЧеловекДуши
21.01.16
✎
09:05
|
Посмотреть в реегистре
https://forums.adobe.com/thread/1386600?start=0&tstart=0 |
|||
3
Prog111
21.01.16
✎
09:22
|
(1) Спасибо, получилось!
Теперь возник другой вопрос - а как удалить ранее созданный элемент АктивеХ? Если пишу так: ЭлементПДФ = ЭлементыФормы.Найти("СканПДФ"); Если ЭлементПДФ <> Неопределено Тогда ЭлементыФормы.Удалить(ЭлементПДФ); КонецЕсли; то возвращает Неопределено, хотя элемент на форме был создан, и более того, он визуально виден на форме. |
|||
4
Prog111
21.01.16
✎
09:23
|
(3) И при отладке в множестве "ЭлементыФормы" нет элемента ActiveX, хотя визуально он присутствует.
|
|||
5
НЕА123
21.01.16
✎
09:35
|
(4)
как вариант. сделать СканПДФ переменной модуля и удалять непосредственно. |
|||
6
Prog111
21.01.16
✎
09:43
|
(5) Попробовал - но не получается:
Процедура ПоказатьЭскиз(ТекИмяФайла) СканПДФ = Неопределено; ЭлементПДФ = ЭлементыФормы.Найти("СканПДФ"); Если ЭлементПДФ <> Неопределено Тогда ЭлементыФормы.Удалить(ЭлементПДФ); КонецЕсли; Если Прав(ТекИмяФайла, 3) = "pdf" Тогда СканПДФ = ЭлементыФормы.ДобавитьActiveX("AcroPDF.PDF.1", СканПДФ, Истина,); СканПДФ.Видимость = Истина; СканПДФ.Верх = 78; СканПДФ.Лево = 457; СканПДФ.Высота = 447; СканПДФ.Ширина = 261; СканПДФ.LoadFile(ТекИмяФайла); КонецПроцедуры В эту процедуру передаю имя файла, и если это pdf - то надо отобразить эскиз файла на форме. Когда передаю иное имя файла (не пдф) - то на форме элемент ActiveX не исчезает, продолжает висеть... |
|||
7
НЕА123
21.01.16
✎
09:47
|
(6)
ммм... СканПДФ = Неопределено; может закомментировать? похоже эта строчка убивает. |
|||
8
НЕА123
21.01.16
✎
09:48
|
(7)
вообще - хз. |
|||
9
Prog111
21.01.16
✎
09:48
|
(7) Я её как раз добавил в попытке удалить уже созданный ранее элемент ActiveX - но всё равно не удаляется.
|
|||
10
НЕА123
21.01.16
✎
09:49
|
Процедура ПоказатьЭскиз(ТекИмяФайла)
Если СканПДФ <> Неопределено Тогда ЭлементыФормы.Удалить(СканПДФ); КонецЕсли; Если Прав(ТекИмяФайла, 3) = "pdf" Тогда СканПДФ = ЭлементыФормы.ДобавитьActiveX("AcroPDF.PDF.1", СканПДФ, Истина,); СканПДФ.Видимость = Истина; СканПДФ.Верх = 78; СканПДФ.Лево = 457; СканПДФ.Высота = 447; СканПДФ.Ширина = 261; СканПДФ.LoadFile(ТекИмяФайла); КонецПроцедуры |
|||
11
asady
21.01.16
✎
10:11
|
(0)
вместо: СканПДФ = ЭлементыФормы.ДобавитьActiveX("AcroPDF.PDF.1", СканПДФ, Истина,); попробуй СканПДФ = ЭлементыФормы.ДобавитьActiveX("AcroPDF.PDF.1", "СканПДФ", Истина,); |
|||
12
asady
21.01.16
✎
10:12
|
(11)+
точнее: элементПДФ = ЭлементыФормы.ДобавитьActiveX("AcroPDF.PDF.1", "СканПДФ", Истина,); далее по тексту |
|||
13
asady
21.01.16
✎
10:38
|
(11)+ попробуй такой вариант:
Процедура ПоказатьЭскиз(ТекИмяФайла) Если ЭлементыФормы["СканПДФ"] <> Неопределено Тогда ЭлементыФормы.Удалить(ЭлементыФормы["СканПДФ"]); КонецЕсли; Если Прав(ТекИмяФайла, 3) = "pdf" Тогда ЭлементыФормы.ДобавитьActiveX("AcroPDF.PDF.1", "СканПДФ", Истина,); ЭлементыФормы["СканПДФ"].Видимость = Истина; ЭлементыФормы["СканПДФ"].Верх = 78; ЭлементыФормы["СканПДФ"].Лево = 457; ЭлементыФормы["СканПДФ"].Высота = 447; ЭлементыФормы["СканПДФ"].Ширина = 261; ЭлементыФормы["СканПДФ"].LoadFile(ТекИмяФайла); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |