下面的代码是为了将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浏览器中实现这个功能。
有谁能帮帮我吗?
你可以使用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);