2

我正在尝试使用 FiremonkeyTWebBrowser加载一些在运行时生成的 HTML。HTML 是一个 Delphi 字符串。

我看过一些代码:http ://delphi.about.com/cs/adptips2004/a/bltip0104_4.htm

procedure 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;

procedure TForm1.FormCreate(Sender: TObject) ;
var
  sHTML : string;
begin
  sHTML := '<a href="http://delphi.about.com">GOTO</a>' +
           '<b>About Delphi Programming</b>';
  WBLoadHTML(WebBrowser1,sHTML) ;
end;

但这似乎是为与 Firemonkey 不兼容的 VCL 应用程序设计的TWebBrowser

我怎样才能实现与此代码示例相同的功能,但使用 Firemonkey 控件?

4

2 回答 2

1

使用 WebBrowser LoadFromStrings 方法。

于 2016-10-08T01:35:50.830 回答
0

您可以在 DLL 中实现此功能...详细信息和可下载示例here

另一种选择是考虑这个开源 TWebBrowserEx 项目。它实际上将使用该平台的正常 Web 浏览器功能。但是,对于 Windows,这意味着在您的 FMX 项目中,您将使用 VCL 来支持 Web 浏览器......这可能会或可能不会产生意想不到的影响。

此类为全平台 FireMonkey 应用程序提供 WebBrowser。

平台 => 组件

  • Windows => IWebBrowser(IE)
  • OS X => WebView(Safari)
  • iOS =>网页视图
  • 安卓 =>网页视图
于 2015-01-13T16:55:45.370 回答