【问题标题】:Disappearing controls in modal dialogs when I press the left Alt key当我按下左 Alt 键时,模式对话框中的控件消失
【发布时间】:2016-06-24 09:50:45
【问题描述】:

我在 Delphi 7 项目中使用 XPMan 单元来制作圆形控件。当我打开一个模态对话框并按下左 Alt 键(通过 Alt-Shift 将键盘布局更改为另一种语言)时,一些控件(很可能是按钮)会消失,并且当我将光标移到它们上方时会再次出现。当我删除 XPMan 时,错误就消失了。除了删除 XPMan 之外,还有其他解决方案吗? (Win10元文件也是这样)

【问题讨论】:

  • 试用最新版本的Delphi
  • 由于 unicode 转换,更改到较新版本并非易事。
  • 首先检查这是否有所作为。追踪哪个版本改变了行为。然后看看源代码发生了什么变化。
  • 您在问为什么十年前的 Delphi 版本不能在现代操作系统中正常工作。对 Unicode 的更改发生在六年前发布的 Delphi 2009 中。你花了这么长时间来完成这不是一项微不足道的任务。 XPMan 是为 VCL 提供主题支持的临时解决方案(基于第三方的出色工作),它现在无法正常工作的事实应该不足为奇。
  • 转储“XPMan 单元”并包含{$I} 的清单文件。并说明您在哪个目标操作系统上遇到此问题。 “模态对话框”是指自定义表单还是MessageBoxA()之类的东西?

标签: delphi controls delphi-7


【解决方案1】:
procedure SendKey_ALT;
begin
    keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);
    keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0);
end;

从您的 FormCreate() 方法调用上述过程。这将解决您的问题。

【讨论】:

  • 优秀,工作!
猜你喜欢
  • 2013-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
  • 1970-01-01
  • 2010-09-30
相关资源
最近更新 更多