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

Вниз

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

 
lipskiy   (2002-04-22 13:40) [0]

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


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

Очень надо!


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

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


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

Да я на сервер не лезу, я подсовываю сгенеренные в рантайме странички. Т.е. я вообще с инетом не работаю. А он почему-то после правильного отображения моей сгенеренной странички еще секунд 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-23 16:56) [4]

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


 
lipskiy   (2002-04-23 23:34) [5]

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


 
lipskiy   (2002-04-23 23:37) [6]

Не спасло...


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

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

Document.Write (Text);


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

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


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



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

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


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

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


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 20:45) [11]

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


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

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

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-текст добавляется к старому (просто фрейм удлинняется), а не заменяется на новый.

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


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

Можно проще.

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;


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


 
Donal_Graeme   (2002-04-26 10:26) [14]

2 lipskiy:

бум знать :-)


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

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



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

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

Наверх




Память: 0.5 MB
Время: 0.011 c
14-39852
Alx2
2002-04-04 15:57
2002.05.13
Задачка


3-39675
SVM
2002-04-17 15:19
2002.05.13
Interbase


3-39672
wer
2002-04-17 19:08
2002.05.13
В запросе SUM не считает всё!


14-39839
Condor
2002-04-04 10:54
2002.05.13
Copy DB


1-39754
kull
2002-04-27 14:21
2002.05.13
TabOrder......