Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
Внизраскладка клавиатуры Найти похожие ветки
← →
amo (2002-10-14 16:33) [0]Help! Как узнать из программы какая раскладка включена русская или английская
← →
Best Before 2024 (2002-10-14 16:37) [1]GetKeyBoardLayout;
← →
AL2002 (2002-10-14 16:37) [2]LoadKeyboardLayout
GetKeyboardLayout
← →
roadster (2002-10-15 13:56) [3]о-о-о-о-й, где- то тут я писал...
если что- давно писал, молодой был, неопытный :0)
//********************************************************
//Юнит содержи фичи для переключения раскладки клавиатуры
//в пределах приложения
//********************************************************
unit kbrdtools;
interface
const
LANGUAGE_NEUTRAL ="00000000";
LANGUAGE_PROCESS_DEFAULT="00000400";
LANGUAGE_GERMAN ="00000407";
LANGUAGE_USA ="00000409";
LANGUAGE_UK ="00000809";
LANGUAGE_FRENCH ="0000040C";
LANGUAGE_ITALIAN ="00000410";
LANGUAGE_RUSSIAN ="00000419";
//*********************
//Функсьён SetLanguage ставит раскладку клавы, указанную
//в параметре Language.
//если Language не указать, будет ставиться русская раскладочка
//в качестве Language можно передать вышеописанные константы
//или вручную строку.
//подробнее про раскладки можно посмотреть в справке по
//WIN API в разделе Language Identifiers. Там можно посмотреть
//что передать в качестве параметра. Есть особенность:
//Например, для русской страницы идентификатором является 0x0419,
//значит, в качестве Language следует передать строку "00000419"
//за эти трансформации меня не надо ругать и обзывать ламером,
//потому что это в апишную LoadKeyboardLayout так надо передавать- строкой
//Пы.Сы. Функция вернет вранье, если раскладочку не удалось поставить
function SetLanguage(Language:String=LANGUAGE_RUSSIAN):Boolean;
//Функция SetRussianLanguage ставит РУССКУЮ раскладку
//На самом деле происходит SetLanguage(LANGUAGE_RUSSIAN)
function SetRussianLanguage:Boolean;
//Следующие две функции ставят в приложении соответственно
//следующую или предыдущую раскладку
function SetNextLanguage:Boolean;
function SetPreviousLanguage:Boolean;
//*********************
implementation
uses
Windows;
//*********************
function SetLanguage(Language:String=LANGUAGE_RUSSIAN):Boolean;
var
KBHandle:HWND;
begin
Result:=True;
KBHandle:=LoadKeyboardLayout(PChar(Language),KLF_ACTIVATE);
if KBHandle<>0
then begin
if ActivateKeyboardLayout(KBHandle,0)=0
then Result:=False;
end
else Result:=False;
end;
//*********************
function SetRussianLanguage:Boolean;
begin
Result:=False;
if SetLanguage(LANGUAGE_RUSSIAN) then Result:=True;
end;
//*********************
function SetNextLanguage:Boolean;
begin
Result:=False;
if ActivateKeyboardLayout(HKL_NEXT,0)<>0
then Result:=True;
end;
//*********************
function SetPreviousLanguage:Boolean;
begin
Result:=False;
if ActivateKeyboardLayout(HKL_PREV,0)<>0
then Result:=True;
end;
//*********************
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c