如何使用Delphi 10.3.3实现TImage高dpi感知?



我使用TImage组件来显示图像文件。然而,当在高dpi显示器上显示时,图像看起来很模糊。如果我使用高分辨率图像,它们在普通显示器上被拉伸,看起来很糟糕。

我知道Delphi 10.4内置了TVirtualImage组件。我正在寻找Delphi 10.3.3 VCL应用程序的解决方案。

  • 将不同分辨率的图像文件放入TImageCollection

  • 添加一个TVirtualImageList到您的窗体,并设置其宽度高度根据需要

  • 添加图像到TVirtualImageList

  • 在表单中添加一个方法UpdateImage,内容如下:

    Image1.Picture.Bitmap := nil;
    VirtualImageList1.GetBitmap(0, Image1.Picture.Bitmap);
    
  • OnCreateOnAfterMonitorDpiChangedhandler

    中调用UpdateImage

最新更新