![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TWebBrowser и динамически формируемая страничка [D7, WinXP]
DancerMan © (2006-04-04 17:26:00)Добрый день!
В TWebBrowser отображаю динамически формируемую страничку. Страничка состоит из таблицы 2х2. В первой колонке - два рисунка, во второй - текст.
Проблема в том, что страница не всегда отображается.
Замечено, что:
1. если текст небольших размеров, то страница отображается.
2. если убрать один рисунок, то отображается и при большом размере текста.
Файлы с рисунками имеют расширение jpeg.
Таблица на результаты отображения не влияет (т.е., без таблицы те же результаты). Относительное положение рисунков и текста перепробовал разное.
В чем может быть дело? Как отобразить всю информацию (оба рисунка и весь текст)?
Спасибо.
DancerMan (2006-04-18 13:07:00) [1]Если отобразить документ таким способом (как советовал Arm79), потом по какому-то событию отобразить другой документ таким же способом.
Как здесь реализовать возврат на предыдущую страницу (GoBack)?
Стандартный метод не работает:
procedure TForm1.WebBrowser1CommandStateChange(Sender: TObject;
Command: Integer; Enable: WordBool);
begin
case Command of
CSC_NAVIGATEBACK: ButtonBack.Enabled := Enable;
CSC_NAVIGATEFORWARD: ButtonForward.Enabled := Enable;
CSC_UPDATECOMMANDS: ButtonCancel.Enabled := Enable;
end;
end;
procedure TForm1.ButtonBackClick(Sender: TObject);
begin
WebBrowser1.GoBack
end;
DancerMan (2006-04-06 11:43:00) [2]
> Arm79 © (05.04.06 16:02) [8]
Спасибо, помогло.
Arm79 (2006-04-05 16:02:00) [3]у меня есть функция, получающая содержимое тела html документа в простом тексте
Если убрать последнюю строчку с Result, то получится отображение документа в WebBrowser (у меня он невидимый)
function TfrmMain.GetPlainText(const HTMLStr: string): string;
var
sTemp : string;
Doc : IHTMLDocument2;
V : Variant;
begin
sTemp := HTMLStr;
Вот здесь ждем, пока WebBrowser не создаст документ
if wbTransformer.Document = nil
then begin
wbTransformer.Navigate('about:blank');
repeat
Application.ProcessMessages;
until wbTransformer.Document <> nil;
end;
записываем в документ содержимое html
Doc := IHTMLDocument2(wbTransformer.Document);
v := VarArrayCreate([0, 0], varVariant);
v[0] := sTemp;
Doc.write(PSafeArray(TVarData(v).VArray));
Doc.close;
получаем PlainText
Result := Doc.body.outerText;
end;
DancerMan (2006-04-05 10:18:00) [4]
> Кашперук Иван (04.04.06 18:27) [4]
Например, вот так работает:
cHTMLcode:=' about:<html><body>'+
' <h3 align=center>Caption</h3>' +
' </body></html>';
WebBrowser.Navigate(cHTMLcode);
Кашперук Иван (2006-04-04 18:33:00) [5]Неа, не работает. Делфи 7
Вот нашел зато, может поможет DancerMan
http://delphi.about.com/cs/adptips2004/a/bltip0104_4.htm
alles (2006-04-04 18:31:00) [6]попробуй
cHTMLcode := '<HTML><HEAD><TITLE>Hello</TITLE></HEAD> <body>Hello, world! </body></HTML>';
Кашперук Иван (2006-04-04 18:27:00) [7]
var
cHTMLcode: string;
begin
cHTMLcode := '<HTML><HEAD><TITLE>Hello</TITLE></HEAD>Hello, world!</HTML>';
WebBrowser.Navigate(cHTMLcode);
end;
Получается, что вот это должно работать? Не работает.
DancerMan (2006-04-04 17:48:00) [8]
> DancerMan © (04.04.06 17:26)
Еще хочу добавить, что спецсимволов отображаемый текст не содержит.
DancerMan (2006-04-04 17:46:00) [9]
> Кашперук Иван (04.04.06 17:32) [1]
cHTMLcode: string;
В cHTMLcode помещаешь html код страницы, которую хочешь отобразить и
WebBrowser.Navigate(cHTMLcode).
Кашперук Иван (2006-04-04 17:32:00) [10]Прости, не могу ответить на твой вопрос - а не мог бы ты рассказать как именно ты это делаешь? я думаю что это не сложно, просто как раз хочу такое сделать.
Может код можешь выслать?