html - 如何在THTMLViewer中显示图像?

标签 html delphi

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/

相关文章:

delphi - 如何将 int 转换为货币?

javascript - 使用 jQuery 或 JavaScript 比较表字符串

javascript - 需要简单的 JavaScript HTML DOM 函数的帮助

delphi - 为什么 "array of string"的两个别名会受到不同的处理?

delphi - 尝试加载库时出现 AccessViolation 异常

Delphi - 用一个参数格式化多个 %s 字符串

html - 多个实时区域和可访问性

javascript - 接受输入来运行程序并在网页上显示输出

html - 将输入值发送到 typescript (没有按钮发送)

xml - 为什么 Internet Explorer 在通过后退按钮返回页面时不显示正确的 XML 转换?