Лидеры рейтинга

ID: 226425

Konstantin Shvetski

Мастер-Эксперт

953

Россия, Северодвинск


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

537

Россия, пос. Теплоозёрск, ЕАО


ID: 401284

Михаил Александров

Академик

351

Россия, Санкт-Петербург


ID: 137394

Megaloman

Мастер-Эксперт

310

Беларусь, Гомель


ID: 400669

epimkin

Профессионал

265


ID: 400484

solowey

Профессор

72


ID: 401888

puporev

Профессор

52

Россия, Пермский край


8.1.6

02.01.2021

JS: 2.2.2
CSS: 4.2.0
jQuery: 3.5.1


 

Создание программ на языках Pascal, Delphi и Lazarus.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)


Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 267
Gluck
Статус: 6-й класс
Рейтинг: 239
puporev
Статус: Профессор
Рейтинг: 52
 

Перейти к консультации №:
 

Консультация онлайн # 199634
Раздел: • Pascal / Delphi / Lazarus
Автор вопроса: alex (Посетитель)
Дата: 17.11.2020, 12:57
Поступило ответов: 0

Здравствуйте! Прошу помощи в следующем вопросе:
Подскажите как завести на клавишу программными средствами (в лазарусе) смену языков
Инфы в интернете вроде много
типа: -

Код (Pascal) :: выделить код
LoadKeyboardLayout('00000419', KLF_ACTIVATE); //Русская раскладка

но куда здесь поместить данную строку

Код (Pascal) :: выделить код
procedure TForm2.Button4Click(Sender: TObject);
  ........
 begin
  ........
 end;

Пожалуйста опишите подробнее
Заранее спасибо

Последнее редактирование 17.11.2020, 17:01 Зенченко Константин Николаевич (Старший модератор)

Состояние: Консультация закрыта

Oтветов пока не поступило.

Мини-форум консультации № 199634

Зенченко Константин Николаевич

Старший модератор

ID: 31795

1

= общий = |  17.11.2020, 13:55 |  цитировать |  профиль |  личное сообщение
alex:

Вам в Лазарусе? Тогда причем тут Питон?

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Сергей Фрост

Управляющий

ID: 143894

2

 +1 
 
= общий = |  17.11.2020, 13:57 |  цитировать |  профиль |  личное сообщение
Зенченко Константин Николаевич:

Костя, я перенес вопрос в Паскаль. smile

=====
Устав – есть устав! Если ты устав – то отдыхай!

Зенченко Константин Николаевич

Старший модератор

ID: 31795

3

= общий = |  17.11.2020, 14:09 |  цитировать |  профиль |  личное сообщение
Сергей Фрост:

Я понял, только сперва хотелось послушать "Начальника Транспортного Цеха".
smile

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Сергей Фрост

Управляющий

ID: 143894

4

= общий = |  17.11.2020, 14:24 |  цитировать |  профиль |  личное сообщение
Зенченко Константин Николаевич:

А чего его слушать?
Три дня назад он практический дубль этого вопроса оценил на пять...
Но если тебе не жалко времени и нервов с ним общаться - то пожалуйста smile

=====
Устав – есть устав! Если ты устав – то отдыхай!

Зенченко Константин Николаевич

Старший модератор

ID: 31795

5

 +1 
 
= общий = |  17.11.2020, 15:21 |  цитировать |  профиль |  личное сообщение
Сергей Фрост:

Там несколько другое, речь идет об обработчиках событий клавиатуры OnKeyPress или OnKeyDown. Их должен кодер прописывать в своем коде.

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

  • LoadKeyboardLayout,
  • UnloadKeyboardLayout,
  • GetKeyboardLayout,
  • GetKeyboardLayoutList,
  • GetKeyboardLayoutName,
  • ActivateKeyboardLayout.


Такой же набор есть для работы с клавиатурой в активном окне и в целевом приложении.

Последнее редактирование 17.11.2020, 15:22 Зенченко Константин Николаевич (Старший модератор)

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Зенченко Константин Николаевич

Старший модератор

ID: 31795

6

= общий = |  17.11.2020, 15:27 |  цитировать |  профиль |  личное сообщение
alex:

Цитата: alex
как завести на клавишу программными средствами

Прописываете в коде и все.
Код (Pascal) :: выделить код
procedure TForm2.Button4Click(Sender: TObject);
........
begin
  . . .
  LoadKeyboardLayout('00000419', KLF_ACTIVATE);
  . . .
end;

Из Вашего вопроса ничего не понятно, что именно Вы хотите сделать.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Зенченко Константин Николаевич

Старший модератор

ID: 31795

7

= общий = |  17.11.2020, 17:06 |  цитировать |  профиль |  личное сообщение
alex:

Будете спамить вопросами - буду больно махать вилкой. smile
Красный цвет - используется модераторами = забудьте о нем. smile
Выложите свой код и опишите проблему = "телепаты в отпуске". smile
Для кода используйте кнопку и выбирайте язык подсветки. smile
Читайте мини-форумы и отвечайте тут на уточняющие фопросы.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Зенченко Константин Николаевич

Старший модератор

ID: 31795

8

= общий = |  18.11.2020, 12:48 |  цитировать |  профиль |  личное сообщение
alex:

Почитайте LoadKeyboardLayoutA. Обычно эта функцция работает в паре с функцией ActivateKeyboardLayout.
Т.е. получается:

Код (Pascal) :: выделить код
procedure TForm2.Button4Click(Sender: TObject);
  var
    kbd:HKL;
  begin 
    kbd:=LoadKeyboardLayout('00000419', 0);
    ActivateKeyboardLayout(kbd,KLF_ACTIVATE);
  end;

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.