【问题标题】:THotKey does not work anymore under Delphi XETHotKey 在 Delphi XE 下不再工作
【发布时间】:2011-10-03 22:44:27
【问题描述】:

我已将旧项目从 Delphi 7 升级到 Delphi XE。 该项目(除其他外)有一些 THotKey 控件。在 Delphi 7 下,THotKey 控件工作正常。但是在 Delphi XE 下,它们就像禁用了一样。这意味着即使为它们分配了快捷键(例如 Alt+A)并且我无法编辑它们,它们也不会在内部显示任何内容。

其他人有这个问题吗?


更新:
我从该项目中删除了所有控件和所有代码。现在我只有主窗体和一个 THotKey 控件。基本上,删除所有控件后,我的项目就像一个全新创建的项目,没有一行代码。但是 THotKey 在 Delphi XE 下仍然无法使用,在 D7 下仍然可以使用。

【问题讨论】:

  • “基本上,删除所有控件后,我的项目就像一个全新创建的项目,没有一行代码。”我不相信你。创建一个new VCL 项目,并将THotKey 拖放到主窗体上。然后它会工作。
  • +1。你是完全正确的。请自己为这个问题写一个答案。这将使这个问题对其他人有用,并且 - 作为奖励 - 你将获得一些“免费”代表!
  • 不过,当然——您可以使用DoubleBuffered := true 的形式。重要的是热键控件不是双缓冲的。

标签: delphi delphi-7 delphi-xe


【解决方案1】:

找到原因(Delphi 错误)

我将我的项目与一个新创建的项目进行了比较。我已经看到旧表单设置了“双缓冲”选项,而在新项目中这没有打开,所以我在旧表单中手动关闭了这个选项。你猜怎么了? THotKey 有效!!!!!!!每次我打开“双缓冲”时,THotKey 都会变成猿猴。

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

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

【讨论】:

  • 再一次我们找到了很好的理由不使用DoubleBuffered。您无需使用它来消除闪烁,它会破坏您的应用程序。
  • 实际上,我想启用双缓冲(以防止在调整表单大小时闪烁)。
  • 不用双缓冲也可以避免闪烁
猜你喜欢
  • 1970-01-01
  • 2011-05-31
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-04
  • 2022-09-23
相关资源
最近更新 更多