5
我使用ActivateKeyboardLayout(HKL_NEXT, KLF_ACTIVATE);
加载使用Delphi XE2的波斯语键盘布局,但有时我单击TextBox或DbGrid控件将键盘自动更改为英文版式。禁用VCL中的DbGrids.pas中的键盘布局自动更改
如何禁用自动更改键盘布局?
我使用ActivateKeyboardLayout(HKL_NEXT, KLF_ACTIVATE);
加载使用Delphi XE2的波斯语键盘布局,但有时我单击TextBox或DbGrid控件将键盘自动更改为英文版式。禁用VCL中的DbGrids.pas中的键盘布局自动更改
如何禁用自动更改键盘布局?
我们有同样的问题。从D2006升级到D2010后出现此错误。
问题是DBGrids.pas:
procedure TCustomDBGrid.WMKillFocus(var Message: TMessage);
begin
ImeName := Screen.DefaultIme;
ImeMode := imDontCare;
inherited;
if not ((InplaceEditor <> nil) and
(HWND(Message.WParam) = InplaceEditor.Handle)) then
ActivateKeyboardLayout(Screen.DefaultKbLayout, KLF_ACTIVATE);
end;
我不知道为什么Borland公司/ Embarcadero公司补充说: “如果块” 继承后。更改会导致将键盘布局切换回默认值。我们必须将DBGrids复制到我们的项目并删除“if block”。