3

使用 Delphi 2010,我使用资源模板方法自定义了 TSaveDialog,如 Delpi 的 ExtDlgs 中的 TOpenPictureDialog 所示。模板方法允许我在系统保存对话框中成功插入包含多个控件的表单。只要 Windows DPI 设置为 96,就可以正常工作。使用用户定义的(文本)缩放或 hdpi 监视器,插入的表单仅部分可见。这当然是由于 Form.Scaled = True 导致表单加上包含控件的缩放(变大)。目前,模板文件(例如 TOpenPictureDialog 中使用的默认文件)包含固定大小的对话框和静态文本元素,这些元素定义了插入表单将占用的空间。

我可以想到几种解决方法:

  • 没有表单缩放(不是真正的 hdpi 监视器解决方案)
  • 根据 Screen.PixelsPerInch/96 提供不同的模板:100% 125%、150% 200% 等)。
  • 使用 IFileDialogCustomize 接口,但这对于我想要的来说还不够表达。

最好的解决方案可能是在对话框加载模板之前在内存中调整该模板的大小(基于 Screen.PixelsPerInch/96)。有类似的东西吗?

4

0 回答 0