HFText是字符串,而HTMLViewer1是THTMLviewer。
HFText:= '<html><head><style>'+
'body {font: Arial 8pt;}'+
'</style></head>'+
'<body marginwidth="0">'+
'<img src="http://10.0.0.20/picture/1.jpg" />'+
'</body></html>';
HTMLViewer1.LoadFromString(HFText);
这样的输出显示一个感叹号(不是我要显示的图片)。
我被告知要使用OnImageRequest,但找不到示例来说明如何做。如何使用OnImageRequest显示图片?
最佳答案
HTMLViewer有两种不同的图像处理方式。
最简单的方法是设置OnImageRequest处理程序,并使用类似以下代码的内容:
procedure TForm1.HTMLViewer1ImageRequest(Sender: TObject;
const SRC: string; var Stream: TMemoryStream);
var
wStrm : TMemoryStream;
begin
wStrm := TMemoryStream.create;
try
IdHTTP1.Get(Src, wStrm);
Stream := wStrm;
except
wStrm.free;
Stream := Nil;
end;
end;
上面的代码假定您已经在表单上有一个IdHTTP1组件来获取内容,或者也可以从TFileStream加载。
在您的示例中,SRC的值为“ http://10.0.0.20/picture/1.jpg”。
您不会释放创建的流,HTMLViewer会为您处理。仅当HTTP get有问题时,我才释放流。
HTH。
关于html - 如何在THTMLViewer中显示图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4202815/