Консультация № 199634
17.11.2020, 12:57
0.00 руб.
17.11.2020, 17:01
0 8 0
Здравствуйте! Прошу помощи в следующем вопросе:
Подскажите как завести на клавишу программными средствами (в лазарусе) смену языков
Инфы в интернете вроде много
типа: -
[code lang=pascal]LoadKeyboardLayout('00000419', KLF_ACTIVATE); //Русская раскладка[/code]
но куда здесь поместить данную строку

[code lang=pascal]procedure TForm2.Button4Click(Sender: TObject);
........
begin
........
end;[/code]
Пожалуйста опишите подробнее
Заранее спасибо

Обсуждение

давно
Старший Модератор
31795
6196
17.11.2020, 13:55
общий
Адресаты:
Вам в Лазарусе? Тогда причем тут Питон?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

в сети
Управляющий
143894
2148
17.11.2020, 13:57
общий
Адресаты:
Костя, я перенес вопрос в Паскаль.
Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Старший Модератор
31795
6196
17.11.2020, 14:09
общий
Адресаты:
Я понял, только сперва хотелось послушать "Начальника Транспортного Цеха".
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

в сети
Управляющий
143894
2148
17.11.2020, 14:24
общий
Адресаты:
А чего его слушать?
Три дня назад он практический дубль этого вопроса оценил на пять...
Но если тебе не жалко времени и нервов с ним общаться - то пожалуйста
Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Старший Модератор
31795
6196
17.11.2020, 15:21
общий
17.11.2020, 15:22
Адресаты:
Там несколько другое, речь идет об обработчиках событий клавиатуры OnKeyPress или OnKeyDown. Их должен кодер прописывать в своем коде.

В этом вопросе - речь об использовании функции ОСи из User32: LoadKeyboardLayout - меняет в текущем приложении раскладку клавиатуры. Это целый набор функций:
  • LoadKeyboardLayout,
  • UnloadKeyboardLayout,
  • GetKeyboardLayout,
  • GetKeyboardLayoutList,
  • GetKeyboardLayoutName,
  • ActivateKeyboardLayout.


Такой же набор есть для работы с клавиатурой в активном окне и в целевом приложении.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
17.11.2020, 15:27
общий
Адресаты:
Цитата: alex
как завести на клавишу программными средствами

Прописываете в коде и все.
[code lang=pascal]procedure TForm2.Button4Click(Sender: TObject);
........
begin
. . .
LoadKeyboardLayout('00000419', KLF_ACTIVATE);
. . .
end;[/code]
Из Вашего вопроса ничего не понятно, что именно Вы хотите сделать.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
17.11.2020, 17:06
общий
Адресаты:
Будете спамить вопросами - буду больно махать вилкой.
Красный цвет - используется модераторами = забудьте о нем.
Выложите свой код и опишите проблему = "телепаты в отпуске".
Для кода используйте кнопку
и выбирайте язык подсветки.
Читайте мини-форумы и отвечайте тут на уточняющие фопросы.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
18.11.2020, 12:48
общий
Адресаты:
Почитайте LoadKeyboardLayoutA. Обычно эта функцция работает в паре с функцией ActivateKeyboardLayout.
Т.е. получается:
[code lang=pascal]procedure TForm2.Button4Click(Sender: TObject);
var
kbd:HKL;
begin
kbd:=LoadKeyboardLayout('00000419', 0);
ActivateKeyboardLayout(kbd,KLF_ACTIVATE);
end;[/code]
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа