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

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

Определение состояния функциональных клавиш [D6, WinXP]


Deedlit ©   (2003-04-04 13:05:00) 

Как узнать в определенный момент, нажат ли Ctrl, Shift? В обработчике НЕТ константы TShiftState, специально это подчеркиваю после общения в местном чате. :)

Есть функции GetKeyStateи GetKeybaordState. Первая возвращает состоянии конкретной клавиши (код клавиши передается в параметре), вторая - состояние всей клавиатуры в виде массива.

1) Как проанализировать возвращаемое GetKeyStateзначение? Там написано: анализ верхнего бита. Я в затруднении. :(

2) Какой массив нужен для GetKeyboardState? И как в нем найти нужные адреса клавиш, функциональных в том числе?

Помогите, мастаки-программисты. :)


Deedlit   (2003-04-04 15:56:00) [1]

Нефиг нафиг пополам... [озадаченно]Работает! Спасибо огромное!


Barmutik   (2003-04-04 13:24:00) [2]

Функция возвращающая состояние функциональных клавиш в любое время.

function GetShiftState: TShiftState;
begin
Result := [];
if GetKeyState(VK_SHIFT) < 0 then Include(Result, ssShift);
if GetKeyState(VK_CONTROL) < 0 then Include(Result, ssCtrl);
if GetKeyState(VK_MENU) < 0 then Include(Result, ssAlt);
end;


Наверх

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