Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.29;
Скачать: [xml.tar.bz2];

Вниз

Как определить состояние клавиши NUMLOCK в реалтайме?   Найти похожие ветки 

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

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


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

if GetKeyState(020)=1 then

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


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

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


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

Ежедневная рассылка сайта Мастера 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 13:28) [4]

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

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


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

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


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

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


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

Можно определить метод для 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;



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

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


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

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


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

СПАСБО!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.08.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
3-95656
MikeFW
2002-08-07 15:05
2002.08.29
как установить BDE у клинта?


3-95700
Loco
2002-08-07 15:32
2002.08.29
Query


14-95944
DeepProg
2002-08-02 19:21
2002.08.29
Education


14-95975
.nuke
2002-08-05 14:16
2002.08.29
Rx-Lib и sohoLib


3-95664
vovanx
2002-08-08 10:14
2002.08.29
TQuery





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский