Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.05.15;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
2-1297171594
black-jack-666
2011-02-08 16:26
2011.05.15
HTML кодировка


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


15-1296654628
int64
2011-02-02 16:50
2011.05.15
Как попасть на RSDN.ru?


15-1295600958
tesseract
2011-01-21 12:09
2011.05.15
Qt книжки


15-1296130623
Knight
2011-01-27 15:17
2011.05.15
Права доступа и тормоза в 1с...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский