Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

WebBrowser   Найти похожие ветки 

 
EvgeniyR ©   (2004-04-02 11:38) [0]

Как отобразить текст в TWebBrowser"е, не сохраняя его на диск. Заранее спасибо.


 
[BAD]Angel ©   (2004-04-02 14:06) [1]

не понял! что значит не созраняя его на диск? на канвасе чтли писать? откуда ты бушь инфу брать для отображения в ТВЕББровзере? если только из инета!


 
TUser ©   (2004-04-02 14:11) [2]

Webbrowser1.Navigate2("about:<html><body><h1>ВАУ</h1></body></html>");


 
[BAD]Angel ©   (2004-04-02 14:31) [3]

а вот этого не знал признаю свою не правоту :) вот только в 7 Дэльфях не Navigate2, а просто Navigate


 
SergP ©   (2004-04-02 18:05) [4]

Не советую делать через about:.....
Когда-то тоже пытался так делать... Для страничек до приблизительно 2Кб работает нормально. А большие обрезает... Причем эта цифра (около 2 Кб) в разных случаях разная...

Делайте так:

procedure TForm1.WBLoad(HTMLstring:string);
var
 v: Variant;
 HTMLDocument: IHTMLDocument2;
begin
 HTMLDocument := WB.Document as IHTMLDocument2;
 v := VarArrayCreate([0, 0], varVariant);
 v[0] := HTMLString;
 HTMLDocument.Write(PSafeArray(TVarData(v).VArray));
 HTMLDocument.Close;
end;

Хотя правда говорят что и єтот метод не лишен недостатка (утечка памяти), но я пока такого за ним не замечал...


 
nikkie ©   (2004-04-02 20:30) [5]

>но я пока такого за ним не замечал...
формочку с веб-браузером создай-выполни этот код-разрушь. или выполни навигацию в браузере, выполни этот код, потом опять, раз этак много. заметишь.

а исправить-то просто - заменить WB.Document на WB.DefaultInterface.Document.


 
SergP ©   (2004-04-02 20:51) [6]

>nikkie ©   (02.04.04 20:30)
>>но я пока такого за ним не замечал...
>формочку с веб-браузером создай-выполни этот код-разрушь. или выполни
>навигацию в браузере, выполни этот код, потом опять, раз этак много.
>заметишь.

Данный код я использую в клиенте форумов, который я писал (вернее и сейчас пишу, т.е. усовершенствую).
Там при создании главной формы выполняется navigate, а в дальнейшем при смене топика генерится в переменной страничка и "впихивается" в Твеббраузер. Бывает что этот код выполняется очень много раз, но пока я ничего страшного не замечал. Видимо потери если и есть, то они незначительные...
Хотя я все-же решил послушаться Вашего совета и переделать прогу согласно ему... (На всякий случай)


 
nikkie ©   (2004-04-02 22:59) [7]

>Видимо потери если и есть, то они незначительные...
нет, потери весьма значительные, но они возникают только при схеме
Navigate - WebBrowser.Document - Navigate - WebBrowser.Document - ...

дело в том, что свойство WebBrowser.Document описано как
property Document: IDispatch index 203 read GetIDispatchProp;
а метод GetIDispatchProp (а заодно и GetIUnknownProp) в TOleControl реализован с ошибкой, которая ведет к тому, что AddRef вызывается лишний раз. в результате объект HTMLDocument никогда не уничтожится. ты работаешь только с одним документом, поэтому проблемы не видишь, но как только вызовешь Navigate, WebBrowser освободит документ и создаст новый. тут и возникает memory leak.

эта проблема упомянута в статье Игоря Осовьяка на королевстве. собственно от него я про утечку и узнал.

ЗЫ по поводу клиента - в первой версии DMClient я тоже так делал, но нормальную историю (кнопки навигации вперед-назад) сделать при таком подходе очень и очень проблематично. поэтому и переделал на app.


 
SergP ©   (2004-04-02 23:11) [8]

Понятно...
просто у меня Navigate используется только один раз при запуске программы, а далее
WebBrowser.Document много раз пока прога не будет закрыта...

Кстати насчет Вашего клиента к этому форуму: Где можно скачать исходники обоих версий: первую и ту что на app для тогочтобы глянуть (т.е. для общего развития)?. Меня app интересует... Насколько я помню Вы ведь выкладывали их для всех...
Если что, то свой клиент к этому форуму я писать не собираюсь. Кстати пользуюсь Вашим... А клиент пишу к другим форумам (типа vbulletin и phpBB)


 
nikkie ©   (2004-04-02 23:28) [9]

вторая версия здесь:
http://sourceforge.net/projects/dmclient/
исходники первой версии я не выкладывал.

ЗЫ мне больше нравится, когда ко мне на ты обращаются. если нет возражений...


 
SergP ©   (2004-04-02 23:40) [10]

>ЗЫ мне больше нравится, когда ко мне на ты обращаются. если нет
>возражений...

ОК. Просто иногда проскакивают топики где кому-нить такое не нравится.. :))
поэтому и стараюсь по возможности не забывать об этом...(Не всегда правда помню об этом)...

А за ссылку спасибо...Щас закачаю....



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
11-1062832055
karson
2003-09-06 11:07
2004.04.18
Не могу установить System units replacement (D6)


1-1080851238
Erik
2004-04-02 00:27
2004.04.18
Как присвоить bitmap из ImageList в TImage?


6-1076423644
launch
2004-02-10 17:34
2004.04.18
Поймать окончание загрузки страницы в TWebBrowser


3-1079604460
bushmen
2004-03-18 13:07
2004.04.18
update openrowset


3-1079705990
Death
2004-03-19 17:19
2004.04.18
Изменение размера поля в таблице DBF