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显示图片?
答案 0 :(得分:4)
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。
答案 1 :(得分:0)
这里没有答案,但这是我如何解决问题,看你是否犯了一个基本错误。
首先,验证当您在浏览器中输入此URL时,您将获得该图像。 http://10.0.0.20/picture/1.jpg 到目前为止还不错?
接下来,使用字符串的内容创建一个test.htm文件。双击以在浏览器中启动。还好吗?
下一步...如果您使用文件引用而不是http:?它是否有效?