Windows Delphi保存对话框未显示

Windows Delphi保存对话框未显示,windows,delphi,Windows,Delphi,在使用Delphi XE6和ReportBuilder()开发并部署在Windows 7计算机上的应用程序中,在屏幕上显示ReportBuilder报告后,用户可以选择将其打印到文件中 一个按钮允许用户选择保存文件的目录: /* This source code was provided by Digital Metaphors; I cannot change it. */ SaveDialog1: TSaveDialog; ... procedure TppPrintDialog.b

在使用Delphi XE6和ReportBuilder()开发并部署在Windows 7计算机上的应用程序中,在屏幕上显示ReportBuilder报告后,用户可以选择将其打印到文件中

一个按钮允许用户选择保存文件的目录:

 /* This source code was provided by Digital Metaphors; I cannot change it. */
 SaveDialog1: TSaveDialog;
 ...
 procedure TppPrintDialog.btnPrintToFileClick(Sender: TObject);
 begin
   if SaveDialog1.Execute then
     begin
在部署应用程序的大多数Windows 7计算机中,报告都能正常工作。

但是,在某些计算机中,执行
SaveDialog1.Execute
时不会发生任何事情

我找到了一份关于Embarcadero帖子的报告,其中指出:

通过从中删除可执行文件名,解决了此问题 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image文件执行 选择权

不幸的是,在我的例子中,这个问题没有得到解决,因为应用程序甚至没有列在提到的注册表项上


我已经联系过Digital隐喻和Embarcadero,但没有任何效果。

当我在Delphi IDE中为项目设置环境变量时,我就遇到了这种情况。在调试器中启动时,由于在VCL中被静默忽略的OLE错误,加载和保存对话框均未显示。删除这些环境变量再次解决了问题


不幸的是,我不记得它是哪个Delphi版本。

另一位对您提到的问题发表评论的人写道:“感谢您的链接。检查了密钥,但应用程序名称不在那里。发现我必须将应用程序的兼容性设置为Windows XP,这就解决了问题。”您也尝试过这个吗?我猜对话框正在选择报表库的某个隐藏窗口作为其所有者。将活动窗体的窗口句柄传递给Execute方法。q中的工作量为+1。但我很惊讶数字隐喻无法回答这个问题——它们通常是v。善于支持他们的用户。谢谢你的评论,Gary。我完全错过了那一次,最终解决了问题。但我仍然为“bug”不一致的事实而烦恼;有些Windows 7计算机没有这个问题,而另一些计算机有。对我来说,XP兼容模式听起来不是一个真正的解决方案