Показать сообщение отдельно
  #3  
Старый 03.04.2009, 19:23
lmikle lmikle сейчас на форуме
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Код:
// AText -  страничка в виде строки (TStringList.Text)
procedure TPreviewForm.ShowHTML(AText: String);
var
  Document: IHTMLDocument2;
  Element : IHTMLElement;
  V: OleVariant;
begin
  // Документ необходимо создать только один раз за текущую сессию работы
  If WB.Document = Nil Then WB.Navigate('about:blank');

  // Ожидаем создания документа и позволяем обрабатывать все сообщения
  While WB.Document = Nil Do
    Application.ProcessMessages;
  Document := WB.Document As IHtmlDocument2;

  // Вставляем текст (до 2Гб)
  {следующие строчки внесены недавно - старый вариант функции не работал под XP}
  V := VarArrayCreate([0, 0], varVariant);
  V[0] := AText;
  Document.Write(PSafeArray(TVarData(v).VArray));
  Document.Close;

  // Remove border
  Element := Document.Body;
  If Element <> Nil Then
    Begin
      Element.Style.BorderStyle := 'none';
    End;
end;
Ответить с цитированием