如何在 "Delphi 10 Seattle "中加载HTML字符串到Chromium浏览器中

问题描述 投票:1回答:1

下面的代码是为了将HTML字符串(作为Stream)加载到 TWebBrowser:

procedure TfrmTestDialog.LoadDocumentFromStream(const Stream: TStream);
var  
        PersistStreamInit: IPersistStreamInit;
        StreamAdapter: IStream;
begin  
  if not Assigned(dWebBrowser.Document) then Exit;
  // Get IPersistStreamInit interface on document object 
  if dWebBrowser.Document.QueryInterface(IPersistStreamInit, 
    PersistStreamInit) = S_OK then
  begin
    // Clear document
    if PersistStreamInit.InitNew = S_OK then
    begin
      // Get IStream interface on stream
      StreamAdapter:= TStreamAdapter.Create(Stream);
      // Load data from Stream into WebBrowser
      PersistStreamInit.Load(StreamAdapter);
    end;
  end;
end;

但我需要在TChromium浏览器中实现这个功能。

有谁能帮帮我吗?

delphi delphi-10-seattle tchromium
1个回答
0
投票

你可以使用TStringStream将流转换为字符串。

function StreamToString(Stream: TStream): String;
begin
    with TStringStream.Create('') do
    try
        CopyFrom(Stream, Stream.Size - Stream.Position);
        Result := DataString;
    finally
        Free;
    end;
end;

这个函数可以在这里找到。http:/embarcadero.newsgroups.archived.atpublic.delphi.vcl.component.using2009070907292775.html。

然后调用TChromium.LoadString来加载产生的字符串,你可以在MiniBrowser演示中看到。https:/github.comsalvadordfCEF4Delphiblob7798f97872e4ca6f5246e3fdda04feeb990f88c7demosDelphi_VCLMiniBrowseruMiniBrowser.pas#L725。

MyChromiumcomponent.LoadString(MyString);
© www.soinside.com 2019 - 2024. All rights reserved.