
03.04.2009, 19:23
|
Модератор
|
|
Регистрация: 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;
|