标准对话框不会弹出

Arn*_*old 2 delphi tsavedialog

我有一个带有TSaveDialog的表单.调用Execute函数时,从IDE运行时不会弹出.它确实运行单机时弹出.稍微测试一下,我发现所有TSave/TOpen对话框都不起作用.不工作意味着Execute在False没有弹出窗口的情况下返回(请参阅更新的代码示例:始终弹出消息'False'而不是在Dialog之前).在其它对话框(字体/颜色/等)的工作.

procedure TForm1.Button1Click(Sender: TObject);
begin
   if OpenPictureDialog1.Execute
      then ShowMessage ('True')
      else ShowMessage ('False');
end;
Run Code Online (Sandbox Code Playgroud)

在没有调试的情况下运行时,对话框也不会出现.选择Release或Debug配置也无关紧要.

显然IDE做了一些奇怪的事情.表单上有两个TSaveDialog组件,两者都显示相同的行为.

知道什么是错的吗?

在Windows 7上使用Delphi XE 更新1.使用TSaveDialogs的其他项目工作正常.

更新2发现有关TSaveDialog的原始问题适用于所有TSave/TOpen对话框.已编辑问题以包含此知识.

更新3我发现此链接出现类似错误.但是,我检查了注册表,但找不到提到的可执行文件.并且改变与XP的兼容性的提示不适用于imho,因为TSaveDialog在IDE之外正常工作.

And*_*den 6

如果您使用的是XE2,则应检查项目选项环境块的"用户覆盖"中是否有任何条目."包含系统变量"不起作用,没有它,只有用户覆盖的环境变量在EXE启动的环境块中,但是打开/保存对话框需要一些系统变量,如"SystemDrive"和" SYSTEMROOT".

或者,您可以安装修复"包含系统变量"选项的IDE修订包.