Вверх ↑
Этот топик читают: Гость
Ответов: 534
Рейтинг: 5
#16: 2010-06-27 11:51:06 ЛС | профиль | цитата
Vlad.-, спасибо. Работает. Кому нужно *.pas в аттаче.
карма: 0

0
файлы: 1hiwebbrowser.rar [2.5KB] [74]
Разработчик
Ответов: 26153
Рейтинг: 2127
#17: 2010-06-27 13:20:47 ЛС | профиль | цитата
Подождем ответ Dilm-ы в корректности такого решения, мне кажется оно весьма некорректным -- создавать новый контрол, не уничтожив предыдущий. Возможно, есть более простое решение этого вопроса

Запостил ошибкой #191 в баг трекер
карма: 22

0
Ответов: 534
Рейтинг: 5
#18: 2010-06-27 14:50:19 ЛС | профиль | цитата
nesco, никто и не спорит. Конечно, ждём ответа Dilm'ы.
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#19: 2010-06-27 16:52:37 ЛС | профиль | цитата
nesco писал(а):
С чем это может быть связано

с тем, что тело документа не было создано при обращении к нему. Создается оно всякий раз при загрузки страницы в браузер (в том числе и при about:blank). Только после этого можно вызывать doFromText.

Vlad.- писал(а):
его нужно заново проинициализировать

именно так
карма: 27
0
Разработчик
Ответов: 26153
Рейтинг: 2127
#20: 2010-06-27 17:26:13 ЛС | профиль | цитата
Dilma писал(а):
именно так

Так что проинициализировать, весь контрол с переназначением событий методов, или только документ
Где в Init уничтожение предыдущего класса, это же будет утечка памяти постоянно, при создании нового документа таким способом
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#21: 2010-06-27 18:12:12 ЛС | профиль | цитата
nesco писал(а):
Где в Init уничтожение предыдущего класса, это же будет утечка памяти постоянно, при создании нового документа таким способом

каким "таким"? Метод doNavigate является стандартным методом элемента и в соответствии с описанием не требует слежения за какой бы то ни было памятью
карма: 27
0
Разработчик
Ответов: 26153
Рейтинг: 2127
#22: 2010-06-27 19:06:28 ЛС | профиль | цитата
Dilma писал(а):
каким "таким"?

Ты чего, топик не читал, что ли Был предложен метод инициализации Vlad.-ом. Про этот метод (Init) и был разговор. Я усомнился в корректности этого метода. Есть мой последний пример, где показана ошибка RTE. Покажи на этом примере, как обнулять документ методом doNavigate перед doFromText не обращаясь к методу Init внутри компонента
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#23: 2010-06-27 20:55:49 ЛС | профиль | цитата
не посмотрел какие именно изменения были внесены - предложенное решение конечно же не верно. Проблема в данном случае возникает из-за того, что в IE открывается содержимое диска, а не документ и тип объекта не содержит интерфейса IPersistStreamInit. Все, что можно посоветовать в данном случае это выполнять doNavigate(about:blank) перед doFromText.

PS: для открытия папок в Windows есть специальный ActiveX со своим GUID и использовать в качестве такового элемент WebBrowser, который расчитан на работу именно с документами, не есть хорошая идея. Проблемы на этом не закончатся.
карма: 27
1
Голосовали:Slim9009
Разработчик
Ответов: 26153
Рейтинг: 2127
#24: 2010-06-27 22:57:59 ЛС | профиль | цитата
Dilma писал(а):
в данном случае это выполнять doNavigate(about:blank) перед doFromText

Оказалось, не банально просто.

Slim9009, вот вариант решения для твоей задачи без изменения компонента WebBrowser (желательно, убрать в нем сделанную правку)

code_19105.txt
карма: 22

1
файлы: 1code_19105.txt [1.5KB] [147]
Голосовали:Slim9009
Ответов: 534
Рейтинг: 5
#25: 2010-06-28 02:06:34 ЛС | профиль | цитата
nesco,Dilma, , спасибо.
Dilma, дай пожалуйста линк на этот ActiveX компонент.
карма: 0

0
25
Сообщение
...
Прикрепленные файлы
(файлы не залиты)