Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.06.2011, 11:03
cadil cadil вне форума
Начинающий
 
Регистрация: 24.10.2007
Сообщения: 169
Репутация: 10
По умолчанию Отображение состояния клавиатуры на форме программы

Есть процедура, которая отображает язык из трея на поле формы:
Код:
procedure TForm1.TimerKTimer(Sender: TObject);
var
  buf: array [0..$ff] of Char;
begin
   if getasynckeystate($61)<>0 then
EditAdd.Text:='1';
  GetKeyboardLayoutName(buf);
  if ((StrPas(buf)= '00020409') or (StrPas(buf)= '00000409')) then LabelK.Caption:='EN';
  if StrPas(buf)= '00000419' then LabelK.Caption:='RU';
end;
Эта процедура работает, когда окно программы активно.
Помогите организовать эту процедуру так, чтобы она отображала состояние клавиатуры (язык) в том случае, когда программа находится в пассивном состоянии - по аналогии, например, с перехватом клавиш:
Код:
if getasynckeystate($61)<>0 then
EditAdd.Text:='1';
Спасибо!
Ответить с цитированием
  #2  
Старый 24.06.2011, 11:11
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

как эта программа показывает язык в трее?
http://data.cod.ru/112448
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 24.06.2011, 11:18
cadil cadil вне форума
Начинающий
 
Регистрация: 24.10.2007
Сообщения: 169
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
как эта программа показывает язык в трее?
http://data.cod.ru/112448
язык ИЗ трея (дублирует!)
Ответить с цитированием
  #4  
Старый 24.06.2011, 12:04
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ну. если в трее RU, то показывает русский флаг, если EN, то американский.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 29.06.2011, 12:31
cadil cadil вне форума
Начинающий
 
Регистрация: 24.10.2007
Сообщения: 169
Репутация: 10
По умолчанию

Тема висит уже 5 дней и не одного сообщения по сути. А жаль ...
Для меня эта задачка очень актуальна.
Помогите, хотя бы, найти код для виртуальных клавиш Shift+Alt (переключение языка).
Спасибо!

Последний раз редактировалось cadil, 29.06.2011 в 13:19.
Ответить с цитированием
  #6  
Старый 29.06.2011, 13:32
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

cadil , ты не отвечаешь на мой ответ с ноября прошлого года
>твоя программа должна отображать язык текстом в поле на форме аналогично тому, как приведеная выше программа отображает язык в трее флагом? та программа не то, что не активна, у нее даже формы нет!
про перехват клавиш вообще не понял к чему...

есть модуль KeyboardLayout. в нем функция:
function NeedKeyboardLayout: Cardinal;

Код:
implementation

uses KeyboardLayout;

Edit1.Text:=IntToStr(NeedKeyboardLayout);

http://narod.ru/disk/17533643001/Key...ayout.dcu.html
__________________
Пишу программы за еду.
__________________

Последний раз редактировалось NumLock, 29.06.2011 в 14:02.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:19.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025