Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.042 c
6-1074576336
2ac
2004-01-20 08:25
2004.04.18
Как узнать свой текущий IP?


1-1080557456
Эли
2004-03-29 14:50
2004.04.18
Открыть окно Эксплорера в своей программе


3-1079959339
Bizon
2004-03-22 15:42
2004.04.18
DBF в Interbase


7-1077320098
Electon
2004-02-21 02:34
2004.04.18
Использование чужой DLL


14-1079906051
konstantinov
2004-03-22 00:54
2004.04.18
Посмотрите код. Не слишко ли коряво?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский