如何在Delphi的ListView中显示图像?

如何在Delphi的ListView中显示图像?,listview,delphi,Listview,Delphi,我需要将数据库中的图像显示到listview组件中。我试过这样的方法,但没有成功 例如: var bmp: TBitmap; blob :TBLOBField; begin bmp := TBitmap.Create; blob := TBlobField.Create(nil); //get image from blob column //image is type bmp blob

我需要将数据库中的图像显示到listview组件中。我试过这样的方法,但没有成功

例如:

 var
   bmp: TBitmap;
   blob :TBLOBField;

 begin
         bmp := TBitmap.Create;

         blob := TBlobField.Create(nil);

        //get image from blob column 
        //image is type bmp
         blob := //here i set bmp image from db;

          bmp.Assign(blob);
          //ListView1 viewstyle is vsReport

          ListView1.LargeImages.Add(bmp,nil); //there is Runtime error access violation at address

 end;

我做错了什么?

对访问冲突最合理的解释是您没有将任何内容分配给
大图像,因此
为nil
。将图像列表放到表单上,并设置
LargeImages
以引用该图像列表。这将解决您的访问冲突


然后您肯定会发现,图像列表要求所有图像具有相同的维度。这意味着在列表视图中显示的每个图像也必须具有相同的尺寸。在添加到图像列表之前,您可能需要调整原始图像的大小以匹配该公共维度。

对于访问冲突最合理的解释是,您没有将任何内容分配给
大图像
,因此它是
。将图像列表放到表单上,并设置
LargeImages
以引用该图像列表。这将解决您的访问冲突


然后您肯定会发现,图像列表要求所有图像具有相同的维度。这意味着在列表视图中显示的每个图像也必须具有相同的尺寸。在添加到图像列表之前,您可能需要调整原始图像的大小以匹配该通用尺寸。

您可以说更多吗。编译器错误?运行时错误?许多新手程序员认为错误消息不包含有用的信息,只是忽略了它们的内容。如果您想要进步,那么我建议您尝试学习如何解释错误消息。读它们。试着理解它们。一旦你开始这样做,你也会意识到,当你询问有关他们的问题时,你必须逐字记录错误信息。除此之外,请给我们一个提示。删除所有数据库代码,因为您可能知道如何从数据库加载图像。而是提供尝试在列表视图中显示图像的完整代码。图像可以在运行时以某种愚蠢的方式创建,它不应该管它的内容是什么。然后我们就知道你的控件是如何设置的。它的视图样式是什么,依此类推。最后,您可以使用文档中的示例。可以在这里找到:顺便说一下,请记住,您的数据库必须包含位图图像,如果它确实包含JPEG、PNG。。。然后需要额外的代码将其首先转换为位图。这就像拔牙一样。不理解错误消息并不意味着它不包含任何信息。如果您想要改进,您需要学习如何解释错误消息。这一点特别容易理解。如果你能学会如何做到这一点,你就能为自己解决更多的问题。你不想这样做吗?“有错误”你能说得更多吗。编译器错误?运行时错误?许多新手程序员认为错误消息不包含有用的信息,只是忽略了它们的内容。如果您想要进步,那么我建议您尝试学习如何解释错误消息。读它们。试着理解它们。一旦你开始这样做,你也会意识到,当你询问有关他们的问题时,你必须逐字记录错误信息。除此之外,请给我们一个提示。删除所有数据库代码,因为您可能知道如何从数据库加载图像。而是提供尝试在列表视图中显示图像的完整代码。图像可以在运行时以某种愚蠢的方式创建,它不应该管它的内容是什么。然后我们就知道你的控件是如何设置的。它的视图样式是什么,依此类推。最后,您可以使用文档中的示例。可以在这里找到:顺便说一下,请记住,您的数据库必须包含位图图像,如果它确实包含JPEG、PNG。。。然后需要额外的代码将其首先转换为位图。这就像拔牙一样。不理解错误消息并不意味着它不包含任何信息。如果您想要改进,您需要学习如何解释错误消息。这一点特别容易理解。如果你能学会如何做到这一点,你就能为自己解决更多的问题。你不想这样做吗?