我将如何在THTMLViewer中显示图像?

我将如何在THTMLViewer中显示图像?,html,delphi,Html,Delphi,HFText是字符串,而HTMLViewer1是THTMLviewer HFText:= '<html><head><style>'+ 'body {font: Arial 8pt;}'+ '</style></head>'+ '<body marginwidth="0">'+ '<img sr

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);
HFText:=''+
'正文{font:Arial 8pt;}'+
''+
''+
''+
'';
HTMLViewer1.LoadFromString(HFText);
这个的输出显示一个感叹号(不是我想要显示的图片)。
我被告知使用OnImageRequest,但我找不到示例来说明该怎么做。如何使用OnImageRequest显示图片?

这里没有答案,但下面是我如何排除故障以确定您是否犯了基本错误

首先,验证在浏览器中输入此URL时是否获得了图像。 到目前为止还好吗

接下来,创建一个包含字符串内容的文件test.htm。双击以在浏览器中启动。还行吗


接下来。。。如果使用文件引用而不是http:,是否有效

这里没有答案,但下面是我如何排除故障,看看您是否犯了一个基本错误

首先,验证在浏览器中输入此URL时是否获得了图像。 到目前为止还好吗

接下来,创建一个包含字符串内容的文件test.htm。双击以在浏览器中启动。还行吗


接下来。。。如果使用文件引用而不是http:,是否有效

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.

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.

工作正常。谢谢。:)工作完美。谢谢。:)