- 创建一个新的 VCL Forms 应用程序
在主窗体上添加一个 Tbutton 和一个 TSaveDialog
在 SaveDialog1 的属性中将“ofOverwritePrompt”设置为 True
利用:
procedure TForm1.Button1Click(Sender: TObject); begin SaveDialog1.Execute(); end;
运行应用程序。按下按钮执行保存对话框。尝试保存到已经存在的文件。如果要替换文件,将出现一个消息框。按取消。到目前为止一切都很好。关闭应用程序。
转到项目/选项/应用程序/外观并选择自定义样式(例如 Amakrits)。将 Amakrits 设置为默认样式。
- 按照上面的 #5 运行应用程序。只会显示一小部分消息框。您必须按 Enter 才能继续。
(使用 TFileSaveDialog 将给出相同的结果)
如果我使用 Delphi XE8 编译和运行应用程序,它会没问题,因为即使选择了另一种样式,保存对话框窗口似乎也使用默认的窗口样式。
编辑:我有 Windows 10 专业版。使用 Delphi 10.1 Berlin 编译为 win32 的源代码。替换消息框部分隐藏。只显示了一个小的左上部分,见图。
这里是用 XE8 win32 编译的:
附言。我使用默认的 100% 比例因子。
用win64(Delphi 10.1 Berlin)编译似乎没问题:
所以,编译到 win32 对我不起作用,但 64 位会。有什么线索吗?
编辑:在 win32 中尝试使用“GetSaveFileName(OFN)”对我也不起作用(win 64 可以):