Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TWebBrowser_V1: Как запретить ему показывать страницу


lipskiy ©   (2002-04-22 13:40:00) 

Есть встроенный TWebBrowser_V1. Нужно запретить ему показывать стандартную страницу с текстом "Невозможно отобразить страницу" и т.д. Это можно как нить сделать?


lipskiy   (2002-04-27 21:15:00) [1]

2 Лёша
Да, действительно, так проще и работает верно, спасибо!


Donal_Graeme   (2002-04-26 10:26:00) [2]

2 lipskiy:

бум знать :-)


Лёша   (2002-04-26 03:10:00) [3]

Можно проще.

if WB.Document = nil then WB.Navigate("about:blank");
while WB.Document = nil do Application.ProcessMessages;

Document := WB.Document as IHtmlDocument2;
Document.body.InnerHTML:= Text;


Это чтобы при каждом обращении к функции заново документ не открывать и не закрывать.


lipskiy   (2002-04-25 21:37:00) [4]

Во, нашел вроде верный вариант:

if WB.Document = nil then WB.Navigate("about:blank");
while WB.Document = nil do Application.ProcessMessages;
Document := WB.Document as IHtmlDocument2;
OleVariant (WB.Document).Write(Text);
Document.Close;


WB.Navigate("about:blank") нужно сделать только один раз, иначе будет только белый лист.
Document.Close обязательно нужен, иначе новый HTML-текст добавляется к старому (просто фрейм удлинняется), а не заменяется на новый.

Надо в базу это кинуть.


lipskiy   (2002-04-25 20:45:00) [5]

Ок, работает также, как и раньше. То есть иногда слетает.
И если делать "about:blank", то начиная со второго раза текст больше не отображается - пустая страница. А вот если "new" то текст железно всегда отображается, но вот иногда через неск. сек. показывает "невозможно отобразить..."


Donal_Graeme   (2002-04-25 10:31:00) [6]

сорри... вот это точно должно скомпилиться (проверял :-) ) :


if WB.Document = nil then WB.Navigate("about:blank");
while WB.Document = nil do Application.ProcessMessages;
OleVariant (WB.Document).Write(Text);


lipskiy   (2002-04-25 01:06:00) [7]

Строчка
Document.Write (Text);
не компилится - несоответствие типов String и PSafeArray


Donal_Graeme   (2002-04-24 11:17:00) [8]

да, и Navigate ("new") я тоже не совсем понимаю...
имхо, можно было бы сделать примерно так (не уверен, конечно) :


WB.Navigate("about:blank");
while WB.Document = nil do Application.ProcessMessages;
Document := WB.Document as IHtmlDocument2;
Document.Write (Text);


Donal_Graeme   (2002-04-24 11:14:00) [9]

да я в-общем то тут тоже не спец :-) я просто уточнить хотел :-)
попробуй по простому:

Document.Write (Text);


lipskiy   (2002-04-23 23:37:00) [10]

Не спасло...


lipskiy   (2002-04-23 23:34:00) [11]

А чего, не надо???
Это не я писал, это я взял откуда-то, я в этом сам не шарю.
Ладно, уберу, попробую, только это корректно будет???


Donal_Graeme   (2002-04-23 16:56:00) [12]

э.. а Document.Close зачем?


lipskiy   (2002-04-22 19:36:00) [13]

Да я на сервер не лезу, я подсовываю сгенеренные в рантайме странички. Т.е. я вообще с инетом не работаю. А он почему-то после правильного отображения моей сгенеренной странички еще секунд 10 че-то думает сам (курсор - стрелка с часиками), и после этого - по своему внутреннему желанию - либо оставит мою страничку, как и положено, либо выкинет "Невозможно отобразить страницу".

Вот код процедуры, с помощью которой я вставляю текст в браузер (текст HTML-старнички):

procedure TextToWebBrowser(Text:string; var WB:TWebBrowser_V1);
var
Document: IHTMLDocument2;
V: OleVariant;
begin
WB.Navigate("new");
(* if WB.Document = nil then WB.Navigate("about:blank")
else WB.Navigate("new"); *)
while WB.Document = nil do begin Application.ProcessMessages; end;
Document := WB.Document as IHtmlDocument2;
V := VarArrayCreate([0, 0], varVariant);
V[0] := Text;
Document.Write(PSafeArray(TVarData(v).VArray));
Document.Close;
end;


Donal_Graeme   (2002-04-22 18:43:00) [14]

хм... так сперва определи, есть ли запрашиваемая страница на сервере, а потом делай Navigate :-)


lipskiy   (2002-04-22 17:03:00) [15]

Очень надо!


Наверх

Титульная страница Поиск, карта сайта Написать письмо