Главная страница
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.008 c
1-1253268899
Tirael
2009-09-18 14:14
2011.05.15
подскажите алгоритм поиска оптимального размещения


15-1296212454
qazxsw
2011-01-28 14:00
2011.05.15
Быстрый вывод пикселей на канву


2-1297093264
Test_unit
2011-02-07 18:41
2011.05.15
Выделить память в dll


3-1258986556
Diplomat
2009-11-23 17:29
2011.05.15
Заполнение ComboBox значениями из БД


15-1296736261
Smile
2011-02-03 15:31
2011.05.15
Тем, у кого есть немного свободного времени:)