THotKey在Delphi XE下不再工作

THotKey在Delphi XE下不再工作,delphi,delphi-7,delphi-xe,Delphi,Delphi 7,Delphi Xe,我已经将一个旧项目从Delphi7升级到DelphiXE。 该项目(除其他外)有一些关键控制。在Delphi7下,THotKey控件工作正常。但在Delphi XE下,他们就像残疾人一样。这意味着,即使为它们指定了快捷方式(例如Alt+a),并且我无法编辑它们,它们内部也不会显示任何内容 还有谁有这个问题吗 更新: 我删除了该项目中的所有控件和所有代码。现在我只有主窗体和一个THotKey控件。基本上,删除所有控件后,我的项目就像一个全新创建的项目,没有一行代码。但是THotKey在Delph

我已经将一个旧项目从Delphi7升级到DelphiXE。 该项目(除其他外)有一些关键控制。在Delphi7下,THotKey控件工作正常。但在Delphi XE下,他们就像残疾人一样。这意味着,即使为它们指定了快捷方式(例如Alt+a),并且我无法编辑它们,它们内部也不会显示任何内容

还有谁有这个问题吗


更新:

我删除了该项目中的所有控件和所有代码。现在我只有主窗体和一个THotKey控件。基本上,删除所有控件后,我的项目就像一个全新创建的项目,没有一行代码。但是THotKey在Delphi XE下仍然不工作,在D7下仍然工作。

原因已找到(Delphi bug)

我将我的项目与新创建的项目进行了比较。我看到旧表单设置了“双缓冲”选项,而在新项目中该选项未启用,因此我在旧表单中手动关闭了该选项。你猜怎么着?THotKey有效!!!!!!!每次我打开“双缓冲”时,THotKey都会变成猿

确认
是(安德烈亚斯·雷杰布兰德)

解决方案(部分):
我已经看到,实际上并不是主窗体的双缓冲属性导致了这种情况,而是THotKey的。因此,对THotKey而不是整个表单关闭此属性就足够了。我想我可以带着这个离开。

:)

“基本上,删除所有控件后,我的项目就像一个全新创建的项目,没有一行代码。”我不相信你。创建一个新的VCL项目,并将一个
THotKey
放到主窗体上。然后它就会工作了。你完全正确。请自己写一个问题的答案。这将使这个问题对其他人有用,而且——作为奖励——你将因此获得一些“免费”代表!当然,您可以使用
DoubleBuffered:=true
格式。重要的是热键控件不是双缓冲的。我们再次找到了不使用双缓冲的好理由。你不需要使用它来消除闪烁,它会破坏你的应用程序。实际上,我想启用双缓冲(以防止在调整窗体大小时闪烁)。不使用双缓冲可以避免闪烁