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

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

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]

Прости, не могу ответить на твой вопрос - а не мог бы ты рассказать как именно ты это делаешь? я думаю что это не сложно, просто как раз хочу такое сделать.
Может код можешь выслать?


Наверх

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