如何使TSaveDialog自定义dpi感知/可扩展?

时间:2018-03-07 12:52:43

标签: delphi topendialog

使用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)的方法。 是这样的吗?

0 个答案:

没有答案