Форум: "Основная";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];
ВнизTWebBrowser и динамически формируемая страничка Найти похожие ветки
← →
DancerMan © (2006-04-04 17:26) [0]Добрый день!
В TWebBrowser отображаю динамически формируемую страничку. Страничка состоит из таблицы 2х2. В первой колонке - два рисунка, во второй - текст.
Проблема в том, что страница не всегда отображается.
Замечено, что:
1. если текст небольших размеров, то страница отображается.
2. если убрать один рисунок, то отображается и при большом размере текста.
Файлы с рисунками имеют расширение jpeg.
Таблица на результаты отображения не влияет (т.е., без таблицы те же результаты). Относительное положение рисунков и текста перепробовал разное.
В чем может быть дело? Как отобразить всю информацию (оба рисунка и весь текст)?
Спасибо.
← →
Кашперук Иван (2006-04-04 17:32) [1]Прости, не могу ответить на твой вопрос - а не мог бы ты рассказать как именно ты это делаешь? я думаю что это не сложно, просто как раз хочу такое сделать.
Может код можешь выслать?
← →
DancerMan © (2006-04-04 17:46) [2]
> Кашперук Иван (04.04.06 17:32) [1]
cHTMLcode: string;
В cHTMLcode помещаешь html код страницы, которую хочешь отобразить и
WebBrowser.Navigate(cHTMLcode).
← →
DancerMan © (2006-04-04 17:48) [3]
> DancerMan © (04.04.06 17:26)
Еще хочу добавить, что спецсимволов отображаемый текст не содержит.
← →
Кашперук Иван (2006-04-04 18:27) [4]
var
cHTMLcode: string;
begin
cHTMLcode := "<HTML><HEAD><TITLE>Hello</TITLE></HEAD>Hello, world!</HTML>";
WebBrowser.Navigate(cHTMLcode);
end;
Получается, что вот это должно работать? Не работает.
← →
alles © (2006-04-04 18:31) [5]попробуй
cHTMLcode := "<HTML><HEAD><TITLE>Hello</TITLE></HEAD><body>Hello, world!</body></HTML>";
← →
Кашперук Иван (2006-04-04 18:33) [6]Неа, не работает. Делфи 7
Вот нашел зато, может поможет DancerMan
http://delphi.about.com/cs/adptips2004/a/bltip0104_4.htm
← →
DancerMan © (2006-04-05 10:18) [7]
> Кашперук Иван (04.04.06 18:27) [4]
Например, вот так работает:
cHTMLcode:=" about:<html><body>"+
" <h3 align=center>Caption</h3>" +
" </body></html>";
WebBrowser.Navigate(cHTMLcode);
← →
Arm79 © (2006-04-05 16:02) [8]у меня есть функция, получающая содержимое тела 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-06 11:43) [9]
> Arm79 © (05.04.06 16:02) [8]
Спасибо, помогло.
← →
DancerMan © (2006-04-18 13:07) [10]Если отобразить документ таким способом (как советовал 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;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c