Boa tarde, somente hoje pude fazer um teste... Usei o TWebBrowser mesmo.
Click do botão:
procedure Tform_principal.btn_view_xmlClick(Sender: TObject);
begin
try
FDQuery1.Close;
FDQuery1.SQL.Text := 'SELECT ENT_XML FROM ENTRADA WHERE ENT_CODIGO = :ENT_CODIGO';
FDQuery1.ParamByName('ENT_CODIGO').Value := edt_compra.Text;
FDQuery1.Open;
if FDQuery1.FieldByName('ENT_XML').AsString <> '' then
begin
form_preview_xml := Tform_preview_xml.Create(nil);
try
WBLoadHTML(form_preview_xml.WebBrowser1, FDQuery1.FieldByName('ENT_XML').AsString);
form_preview_xml.ShowModal;
finally
form_preview_xml.Free;
end;
end;
except
on E: Exception do
ShowMessage(E.Message);
end;
end;
Função auxiliar: WBLoadHTML
uses
SHDocVw, ActiveX;
procedure Tform_principal.WBLoadHTML(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;