// GET ALL AVAILABLE KEYBOARD LAYOUTS procedure TForm1.GetKLList(List: TStrings); var AList : array [0..9] of Hkl; AklName: array [0..255] of Char; i: Longint; begin List.Clear; for i := 0 to GetKeyboardLayoutList(SizeOf(AList), AList) - 1 do begin GetLocaleInfo(LoWord(AList[i]), LOCALE_SLANGUAGE, AklName, SizeOf(AklName)); List.AddObject(AklName, Pointer(AList[i])); end; end; procedure TForm1.ComboBox2Change(Sender: TObject); begin with Sender as TComboBox do begin ActivateKeyboardLayout(Hkl(Items.Objects[ItemIndex]), 0); end; end; procedure TForm1.FormCreate(Sender: TObject); begin GetKLList(ComboBox2.Items); end;