Vlad.-, спасибо. Работает. Кому нужно *.pas в аттаче.
Этот топик читают: Гость
Ответов: 534
Рейтинг: 5
|
|||
карма: 0 |
| ||
файлы: 1 | hiwebbrowser.rar [2.5KB] [74] |
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
Подождем ответ Dilm-ы в корректности такого решения, мне кажется оно весьма некорректным -- создавать новый контрол, не уничтожив предыдущий. Возможно, есть более простое решение этого вопроса
Запостил ошибкой #191 в баг трекер |
|||
карма: 22 |
|
Ответов: 534
Рейтинг: 5
|
|||
nesco, никто и не спорит. Конечно, ждём ответа Dilm'ы.
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): С чем это может быть связано с тем, что тело документа не было создано при обращении к нему. Создается оно всякий раз при загрузки страницы в браузер (в том числе и при about:blank). Только после этого можно вызывать doFromText. Vlad.- писал(а): его нужно заново проинициализироватьименно так |
|||
карма: 27 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
Dilma писал(а): именно такТак что проинициализировать, весь контрол с переназначением событий методов, или только документ Где в Init уничтожение предыдущего класса, это же будет утечка памяти постоянно, при создании нового документа таким способом |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): Где в Init уничтожение предыдущего класса, это же будет утечка памяти постоянно, при создании нового документа таким способом каким "таким"? Метод doNavigate является стандартным методом элемента и в соответствии с описанием не требует слежения за какой бы то ни было памятью |
|||
карма: 27 |
|
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
Dilma писал(а): каким "таким"?Ты чего, топик не читал, что ли Был предложен метод инициализации Vlad.-ом. Про этот метод (Init) и был разговор. Я усомнился в корректности этого метода. Есть мой последний пример, где показана ошибка RTE. Покажи на этом примере, как обнулять документ методом doNavigate перед doFromText не обращаясь к методу Init внутри компонента |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
не посмотрел какие именно изменения были внесены - предложенное решение конечно же не верно. Проблема в данном случае возникает из-за того, что в IE открывается содержимое диска, а не документ и тип объекта не содержит интерфейса IPersistStreamInit. Все, что можно посоветовать в данном случае это выполнять doNavigate(about:blank) перед doFromText.
PS: для открытия папок в Windows есть специальный ActiveX со своим GUID и использовать в качестве такового элемент WebBrowser, который расчитан на работу именно с документами, не есть хорошая идея. Проблемы на этом не закончатся. |
|||
карма: 27 |
| ||
Голосовали: | Slim9009 |
Разработчик
Ответов: 26153
Рейтинг: 2127
|
|||
Dilma писал(а): в данном случае это выполнять doNavigate(about:blank) перед doFromTextОказалось, не банально просто. Slim9009, вот вариант решения для твоей задачи без изменения компонента WebBrowser (желательно, убрать в нем сделанную правку) code_19105.txt |
|||
карма: 22 |
| ||
файлы: 1 | code_19105.txt [1.5KB] [147] | ||
Голосовали: | Slim9009 |
Ответов: 534
Рейтинг: 5
|
|||
nesco,Dilma, , спасибо.
Dilma, дай пожалуйста линк на этот ActiveX компонент. |
|||
карма: 0 |
|
25