13.05.2009, 18:25
|
Активный
|
|
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
|
|
Как вариант, можно сделать что-то вроде этого :
Код:
function SetActiveKeyboardLayout(Mode : integer) : Boolean;
//Переключение клавиатуры.
//Mode: =0 - Рус, =1 - Лат, =2 - Укр
var
Kbd: HKL;
begin
Result:=FALSE;
Kbd:=0;
if Mode<=0 then Kbd:=LoadKeyboardLayout('00000419', 0); //RU
if Mode=1 then Kbd:=LoadKeyboardLayout('00000409', 0); //Lat
if Mode>=2 then Kbd:=LoadKeyboardLayout('00000422', 0); //Ukr
if Kbd<>0 then begin
ActivateKeyboardLayout(Kbd,0);
Result:=TRUE;
end;
{
Идентификатор Пояснение
037 EBCDIC.
437 MS-DOS (США).
500 EBCDIC "500V1".
708 Арабская (ASMO 708).
709 Арабская (ASMO 449+, BCON V4).
710 Арабская (Transparent Arabic).
720 Арабская (Transparent ASMO).
737 Греческая (ранее 437G).
775 Балтийская.
850 MS-DOS многоязыковая (Latin I).
852 MS-DOS восточноевропейская (Latin II).
855 Кириллица IBM.
857 Турецкая IBM.
860 MS-DOS (Португалия).
861 MS-DOS (Исландия).
862 Еврейская.
863 MS-DOS (Французская Канада).
864 Арабская.
865 MS-DOS скандинавская.
866 MS-DOS русская.
869 Современная греческая IBM.
874 Тайская.
875 EBCDIC.
932 Японская.
936 Китайская (КНР, Сингапур).
949 Корейская.
950 Китайская (Тайвань, Гонконг).
1026 EBCDIC.
1200 Unicode (BMP или ISO 10646).
1250 Windows 3.1 (Восточная Европа).
1251 Windows 3.1 (Кириллица).
1252 Windows 3.1 США (ANSI).
1253 Греческая Windows 3.1.
1254 Турецкая Windows 3.1.
1255 Еврейская.
1256 Арабская.
1257 Балтийская.
1361 Корейская (Johab).
10000 Macintosh латинская.
10001 Macintosh японская.
10006 Macintosh греческая I.
10007 Macintosh кириллическая.
10029 Macintosh Latin 2.
10079 Macintosh (Исландия).
10081 Macintosh турецкая.
См. также
GetACP, GetCPInfo, GetOEMCP.
}
end;
|