【发布时间】:2011-03-10 08:45:15
【问题描述】:
问题(动态切换语言)已通过ActivateKeyboardLayout 解决,但当我在表单上动态创建组件时(例如 TEdit),它仍然存在。当该组件成为焦点时,语言将更改为默认值。在创建组件后,我再次尝试使用 ActivateKeyboardLayout,但没有成功。有什么想法吗?
【问题讨论】:
-
你使用了 KLF_SETFORPROCESS 吗?
-
@TOndrej:我是这样使用的:LoadKeyboardLayout(someId, KLF_ACTIVATE)
-
无法复制,我动态创建的编辑会保留更改后的布局。你能发布一个有问题的样本吗?
-
@Sertac Akyuz:我在表单上有一个 dbgrid。当我动态创建编辑时,我将父级设置为 dbgrid。 LoadKeyboardLayout 的初始调用是 onActivate。
-
我认为您的问题与已知问题有关。请参阅 QC 报告 #79485:Keyboard layout swtching when exiting dbgrid control。并在 embarcadero 论坛上查看 this thread 以获取解决方法。
标签: delphi keyboard-shortcuts delphi-2009 keyboard-layout