2

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

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

当运行而不调试时,对话框都不会出现。选择 Release 或 Debug 配置也无关紧要。

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

知道有什么问题吗?

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

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

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

4

1 回答 1

6

如果您使用的是 XE2,那么您应该检查在 Project Options Environment 块的“用户覆盖”中没有任何条目。“包含系统变量”不起作用,没有它,只有用户覆盖的环境变量在启动 EXE 的环境块中,但打开/保存对话框需要一些系统变量,如“SystemDrive”和“系统根”。

或者,您可以安装修复“包含系统变量”选项的IDE Fix Pack 。

于 2012-04-01T12:50:39.253 回答