var
Form1:
TForm1;
LAYOUT:
String;
implementation
{$R
*.DFM}
procedure TForm1.Button1Click(Sender:
TObject);
var
RA:
Array[0..$FFF] of Char;
begin
GetKeyboardLayoutName(RA) ;
Layout
:= StrPas(RA);
if Layout = '00000419' then
showmessage(' CCCP ' )
else
if Layout = '00000409' then
showmessage(' USA
' )
else
showmessage(' X 3
' ) ;
end;
Автор:
Radmin
Code:
function WhichLanguage:string;
var
ID:LangID;
Language: array [0..100] of char;
begin
ID:=GetSystemDefaultLangID;
VerLanguageName(ID,Language,100);
Result:=String(Language);
end;
Пример вызова
этой функции:
Code:
procedure TForm1.Button1Click(Sender:
TObject);
begin
Edit1.Text:=WhichLanguage;
end;
Также, для
определения активного языка можно воспользоваться функцией GetUserDefaultLangID.
Первый фрагмент кода на языке Pascal (Delphi):
В этом коде создается форма (Form1) с кнопкой (Button1). Когда кнопка кликается, вызывается функция GetKeyboardLayoutName, которая возвращает текущий формат клавиатуры.
Результат хранится в массиве (RA) и затем конвертируется в строку (LAYOUT с помощью StrPas.
Код проверяет, соответствует ли формат одному из трех конкретных значений ('00000419', '00000409' или любому другому). Если это так, то отображается сообщение с соответствующим именем языка (CCCP для России, USA для США и X для любого другого).
Второй фрагмент кода:
В этом коде определена функция (WhichLanguage), которая возвращает текущий системный язык по умолчанию как строку.
Функция использует GetSystemDefaultLangID, чтобы получить ID языка по умолчанию.
Затем она вызывает VerLanguageName с языковым ID и массивом для хранения имени языка.
Наконец, результат конвертируется в строку с помощью конструктора строки.
Пример использования этой функции показывает, как ее можно вызвать в обработчике события клика кнопки (Button1Click) и присвоить результат редактированию (Edit1 на форме.
Статья описывает способ определения текущего языка на клавиатуре в Delphi и практические примеры использования функций GetSystemDefaultLangID, VerLanguageName и GetUserDefaultLangID для этого.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS