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」。