【发布时间】:2021-06-10 19:24:50
【问题描述】:
在 Delphi 10.4.2 Win32 VCL 应用程序中,我需要在运行时手动将 SVG 文档插入到 TWebBrowser (wb1.SelectedEngine := IEOnly;):
procedure TForm1.btnLoadSVGDocClick(Sender: TObject);
var
Doc: Variant;
slSVG: TStringList;
begin
slSVG := TStringList.Create;
try
slSVG.LoadFromFile('C:\DELPHI\_test\BrowserSVGViewer\steamreactor.svg');
// Todo: Make corrections to the SVG document text
if NOT Assigned(wb1.Document) then
wb1.Navigate('about:blank');
Doc := wb1.Document;
Doc.Clear;
Doc.Write(slSVG.Text);
Doc.Close;
//wb1.Refresh;
finally
slSVG.Free;
end;
end;
不幸的是,SVG 没有显示在TWebBrowser!我究竟做错了什么?我什至尝试过wb1.Refresh;,但它没有帮助。
【问题讨论】:
-
你真的需要一个 TWebBrowser 来显示 SVG 图像吗?也许你可以使用这个:github.com/EtheaDev/SVGIconImageList
-
@DelphiCoder 比较这个 SVG 文件的渲染:svgshare.com/s/Uzf 在 SVGIconImageList 和 Web 浏览器中。我做了比较:-{=
-
@user1580348 是对的。在 SVG 渲染方面,很少有库可以与现代 Web 浏览器竞争。也许没有。
-
“未显示 SVG” 有什么显示吗?
-
@Olivier:不,但是如果你查看源代码,你可以看到 SVG 文件。我认为 IE 控件需要编写纯 HTML。它不允许您以这种方式插入 XML SVG 文档。
标签: delphi svg twebbrowser delphi-10.4-sydney