![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]Очень надо!