28.01.2021, 12:09 | #1 |
Участник
|
Отключиться от ActiveX
Добрый день. Несколько вопросов по ActiveX контролам.
1. Как правильно отключиться от компоненты Microsoft Web Browser? При открытии формы данный контрол белого цвета, далее при работе с формой в нем отображаются превью файлов с использованием команды ActiveX.Navigate(имя файла). Пока использую ActiveX.Navigate(""), но это приводит к тому что в контроле отображает непрезентабельное "Не удается отобразить эту страницу" 2. Если компонента не установлена на терминале, то при компиляции формы или ее запуске получаем ошибку ActiveX - "Невозможно создать элемент управления....Проверьте, что элемент должным образом зарегистрирован". Хочу временно отключить этот контрол, но visible(false) в свойствах не помогает, она всё равно при открытии формы ругается, есть ли способ отключить не удаляя контрол из формы? |
|
28.01.2021, 12:47 | #2 |
Участник
|
Цитата:
Сообщение от Player1
Добрый день. Несколько вопросов по ActiveX контролам.
1. Как правильно отключиться от компоненты Microsoft Web Browser? При открытии формы данный контрол белого цвета, далее при работе с формой в нем отображаются превью файлов с использованием команды ActiveX.Navigate(имя файла). Пока использую ActiveX.Navigate(""), но это приводит к тому что в контроле отображает непрезентабельное "Не удается отобразить эту страницу" 2. Если компонента не установлена на терминале, то при компиляции формы или ее запуске получаем ошибку ActiveX - "Невозможно создать элемент управления....Проверьте, что элемент должным образом зарегистрирован". Хочу временно отключить этот контрол, но visible(false) в свойствах не помогает, она всё равно при открытии формы ругается, есть ли способ отключить не удаляя контрол из формы? 2. видел примеры кода когда из кода затирали свойство \System Documentation\Classes\FormBuildActiveXControl\className или \System Documentation\Classes\FormActiveXControl\className на init() формы - помогало в случаях когда нужного компонента нет. Но вообще это плохой тон. Окружение для клиента / аоса аксапты должно быть одинаково. Если используете терминальные сервера то это легко обеспечить. |
|
|
За это сообщение автора поблагодарили: Player1 (3). |
28.01.2021, 13:03 | #3 |
Участник
|
Цитата:
Сообщение от Logger
1. может быть попробовать скормить ActiveX.Navigate() какой-нить html пустышку
2. видел примеры кода когда из кода затирали свойство \System Documentation\Classes\FormBuildActiveXControl\className или \System Documentation\Classes\FormActiveXControl\className на init() формы - помогало в случаях когда нужного компонента нет. Но вообще это плохой тон. Окружение для клиента / аоса аксапты должно быть одинаково. Если используете терминальные сервера то это легко обеспечить. 2. Всё понимаю, но чинят другие, а претензии от юзеров ко мне, это временно. Хмм, а как бы еще условие сделать, что если получится компоненту задействовать, то пусть работает, а если будет ошибка, то затираю className |
|
28.01.2021, 13:13 | #4 |
Участник
|
Ну какой нить WinApi функцию дернуть. Или через .net
Есть в винде инструменты, чтобы проверить по ClassName или ClassGUID зарегистрирован ли соответствующий ActiveX или нет. Но мне не доводилось. Гуглите. |
|
28.01.2021, 14:34 | #5 |
Участник
|
На п.1 ответ нашёл в классе SysHelp:
X++: ActiveX.Navigate(#InitPage) |
|
29.01.2021, 13:12 | #6 |
Участник
|
Если мне не изменяет память то там можно не ссылку на файл во временном каталоге передавать, а строку текста с html кодом. Поищите на эту тему.
|
|