Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2009, 19:59   #1
bbk_serg
Пользователь
 
Регистрация: 15.12.2008
Сообщений: 62
Смущение язык клавиатуры

Здраствуйте!

Какой код нужно для того чтобы при запуске программы английский язык клавиатури менялся на русский.

СПАСИБО!!!
bbk_serg вне форума Ответить с цитированием
Старый 13.04.2009, 20:14   #2
Niarb
Пользователь
 
Регистрация: 23.02.2009
Сообщений: 38
По умолчанию

думаю следующий код будет тебе полезен

Код:
procedure GetKLList(List: TStrings);
var AList : array [0..9] of Hkl;
    AklName: array [0..255] of Char;
    i: Longint;
begin
   List.Clear;
   for i := 0 to GetKeyboardLayoutList(SizeOf(AList), AList) - 1 do begin
      GetLocaleInfo(LoWord(AList[i]), LOCALE_SLANGUAGE, AklName, SizeOf(AklName));
      List.AddObject(AklName, Pointer(AList[i]));
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Layout: array[0.. KL_NAMELENGTH] of char;
begin
   // русский
   LoadKeyboardLayout( StrCopy(Layout,'00000419'),KLF_ACTIVATE);
end;

procedure TForm1.Button2Click(Sender: TObject);
var Layout: array[0.. KL_NAMELENGTH] of char;
begin
   // аглицкий
   LoadKeyboardLayout(StrCopy(Layout,'00000409'),KLF_ACTIVATE);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   // сбор данных о раскладках
   GetKLList(ListBox1.Items);
end;

procedure TForm1.ListBox1Click(Sender: TObject);
begin
   // смена раскладки
   with Sender as TListBox do
     ActivateKeyboardLayout(Hkl(Items.Objects[ItemIndex]), 0);
end;
Чем меньше вы знаете, тем больше я ценен как специалист...
Niarb вне форума Ответить с цитированием
Старый 13.04.2009, 20:15   #3
KingOfNothing
Пользователь
 
Регистрация: 06.02.2009
Сообщений: 89
По умолчанию

в глобальном var'e
Код:
russian, latin: HKL;
Где нужно:
Код:
 russian := LoadKeyboardLayout('00000419', 0);
 latin   := LoadKeyboardLayout('00000409', 0);
 ActivateKeyboardLayout(russian, KLF_REORDER);
Не уверен на счет ключа KLF_REORDER, но всё вроде работает

Ссылки:
http://msdn.microsoft.com/en-us/libr...89(VS.85).aspx
http://www.experts-exchange.com/Prog..._20799845.html
Если вдруг захотите сказать мне спасибо - воспользуйтесь кнопкой "Добавить отзыв"
KingOfNothing вне форума Ответить с цитированием
Старый 13.04.2009, 20:19   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

че-то я поздно
модеры сотрите пост плиз
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 13.04.2009 в 20:25.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.04.2009, 14:44   #5
bbk_serg
Пользователь
 
Регистрация: 15.12.2008
Сообщений: 62
По умолчанию

А если украинский то какой код будет!

СПАСИБО!!!
bbk_serg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
принадлежит ли число, введённое с клавиатуры отрезку (а;в). Границы отрезка вводятся с клавиатуры Maria, Russia Помощь студентам 3 17.02.2009 22:01
Блокировка клавиатуры bunner Помощь студентам 1 05.02.2009 20:15
Шпион Клавиатуры Killbrum Безопасность, Шифрование 12 18.09.2008 11:12
имитация клавиатуры Var17 Win Api 3 17.06.2008 14:28
Отключение клавиатуры Lonix Общие вопросы Delphi 4 04.09.2007 17:48