Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как определить состояние клавиши NUMLOCK в реалтайме? [D5, Win95/98, WinME]


[BAD]Angel ©   (2002-08-17 15:54:00) 

Как определить состояние клавиши NUMLOCK в реалтайме?
Если я на нее нажал, то ее сост. должно отобразиться, допустим, на лабеле!
Желательно не использовать таймер!


[BAD]Angel   (2002-08-18 16:03:00) [1]

СПАСБО!


Sedunov Vitaly   (2002-08-18 15:54:00) [2]

Повесь лучше в Application.OnIdle


XanderMan   (2002-08-18 15:50:00) [3]

2 [BAD]Angel
А если этот самыэ пользователь нажимает NumLock не в Вашей программе? Как она должна реагировать в этом случае?


McSimm   (2002-08-18 15:22:00) [4]

Можно определить метод для Application.OnMessage:
...
private
procedure AppMsg(var Msg: TMsg; var Handled: Boolean);
...

procedure TForm1.AppMsg(var Msg: TMsg; var Handled: Boolean);
begin
if (Msg.message = WM_KEYUP) and (Msg.wParam = VK_NUMLOCK) then
begin
if GetKeyState(VK_NUMLOCK)=1 then Caption := "On"
else Caption := "Off"
end
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := AppMsg;
end;


[BAD]Angel   (2002-08-18 14:08:00) [5]

Алле... Люди?!


[BAD]Angel   (2002-08-18 13:47:00) [6]

Ну что, никто не знает чтоля?


[BAD]Angel   (2002-08-18 13:28:00) [7]

Да это понятно, но куда это вешать та?

Поясняю: Прога запущена (работает) мне захотелось выключить НамЛок, я на нее нажал, и ее сост должно отобразиться в проге, например на Лабеле!!! Но вот как БЕЗ ТАЙМЕРА это сделать????
Form1.OnKeyDown тоже не подойдет!!!! :-(


XanderMan   (2002-08-18 13:02:00) [8]

Ежедневная рассылка сайта Мастера DELPHI

DELPHI.mastak.ru

Выпуск от 18.08.02 09:04
Лучшее из нашего FAQ |x|
Проверка нажатых функциональных клавиш Функция GetKeyState (Win32API) возвращает статус кнопки клавиатуры, переданной ей в качестве параметра. Статус определяет, что кнопка нажата(down), отпущена(up) или переключена(on/off, как например клавиши NumLock или CapsLock). Если старший разряд возвращаемого значения равен 1, то кнопка нажата, иначе она отпущена. Если младший разряд равен 1, то кнопка включена(состояние On), иначе кнопка выключена(off).


SHORT GetKeyState( int nVirtKey );


Например:


IF GetKeyState(VK_NUMLOCK) = 1 Then ...// Кнопка "NumLock" включена (on)


[BAD]Angel   (2002-08-18 12:30:00) [9]

Да нет, про GetKeyState я знаю. Но то, что ты написал надо ставить на таймер... А мне надо без таймера!


EugenCFG   (2002-08-17 19:06:00) [10]

if GetKeyState(020)=1 then

по-моему так... если чё не так то пиши....


Наверх

Титульная страница Поиск, карта сайта Написать письмо