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

Вниз

TWebBrowser   Найти похожие ветки 

 
new_user   (2011-02-05 20:59) [0]

Здравстуйте.
Чтобы отобразить сраничку можно воспользоваться методом Navigate
WebBrowser1.Navigate("file.html");
Вопрос: а можно ли непосредсвенно из строковой переменной передать html код в WebBrowser и отобразить его, либо как то иначе, лишь бы не иметь на диске html файл?


 
sniknik ©   (2011-02-05 21:52) [1]

WebBrowser1.Navigate("about:<html><body>оп ля!</body></html>");


 
new_user   (2011-02-06 13:23) [2]


> niknik ©   (05.02.11 21:52) [1]
> WebBrowser1.Navigate("about:<html><body>оп ля!</body></html>");
>

Cпасибо вам. Нарыл пример:
procedure WB_LoadHTML(WebBrowser: TWebBrowser; HTMLCode: string);
var
 sl: TStringList;
 ms: TMemoryStream;
begin
 WebBrowser.Navigate("about:blank");
 while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
   Application.ProcessMessages;

 if Assigned(WebBrowser.Document) then
 begin
   sl := TStringList.Create;
   try
     ms := TMemoryStream.Create;
     try
       sl.Text := HTMLCode;
       sl.SaveToStream(ms);
       ms.Seek(0, 0);
       (WebBrowser.Document as
         IPersistStreamInit).Load(TStreamAdapter.Create(ms));
     finally
       ms.Free;
     end;
   finally
     sl.Free;
   end;
 end;
end;

и нафига так тогда извращаться


 
sniknik ©   (2011-02-06 14:10) [3]

> и нафига так тогда извращаться
попробуй на более менее большом тексте...

хотя код, с перекладыванием из одного в другое действительно  действительно не особо...

 procedure WB_LoadHTML(WebBrowser: TWebBrowser; HTMLCode: string);
 var
   ms: TStringStream;
 begin
  WebBrowser.Navigate("about:blank");
  while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do begin
    Sleep(0);
    Application.ProcessMessages;
  end;

  if Assigned(WebBrowser.Document) then begin
    ms:= TStringStream.Create(HTMLCode);
    try
      (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
    finally
      ms.Free;
    end;
  end;
 end;


 
sniknik ©   (2011-02-06 14:11) [4]

хотя нет, нужно поменять местами
    Application.ProcessMessages;
    Sleep(0);


 
new_user   (2011-02-06 14:32) [5]


> попробуй на более менее большом тексте...

но мне большой то и не нужен, типо непольших отчетиков из базы, слова ключевые просто нужно подсвечивать другим цветом, поэтому решил остановиться на этом решении c html думаю намного проще все это в html коде оформить.


 
Leonid Troyanovsky ©   (2011-02-06 21:45) [6]


> new_user   (06.02.11 14:32) [5]

Святая простота.

--
Regards, LVT.


 
antonn ©   (2011-02-06 22:13) [7]

Нормальное решение.
Но рендером я бы взял THTMLViewer


 
RWolf ©   (2011-02-07 10:59) [8]

если просто другим цветом — TRichEdit.



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

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

Наверх




Память: 0.48 MB
Время: 0.007 c
15-1296133427
A_A
2011-01-27 16:03
2011.05.15
Как вы относитесь к языку Smalltalk?


15-1295030316
Прохожий
2011-01-14 21:38
2011.05.15
Как войти на этот сайт?


2-1296987414
Fr
2011-02-06 13:16
2011.05.15
использование TDialogOpen


2-1297060368
Сергей
2011-02-07 09:32
2011.05.15
Счётчик


2-1297326626
Максон
2011-02-10 11:30
2011.05.15
как открыть вордовский документ с помощью OpenDialog