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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2015, 17:55   #1
helper999999
Пользователь
 
Регистрация: 22.02.2014
Сообщений: 45
По умолчанию Состояние клавиши

Добрый вечер. Подскажите пожалуйста как определить состояние клавиши нажата ли или нет. Да пример желательно с помощью вставки asm. Заранее благодарю.

Пример:
Код:
function down: Boolean;
begin
asm
//....
end;
end;
helper999999 вне форума Ответить с цитированием
Старый 17.08.2015, 18:02   #2
ResourceSpace
Форумчанин
 
Аватар для ResourceSpace
 
Регистрация: 30.06.2015
Сообщений: 353
По умолчанию

GetKeyState()
ResourceSpace вне форума Ответить с цитированием
Старый 18.08.2015, 18:56   #3
helper999999
Пользователь
 
Регистрация: 22.02.2014
Сообщений: 45
По умолчанию

нет просто я думал можно ли как нибудь переделать вот этот код, под asm но чтобы его можно было вставить в delphi.
Код:
function downbutton : BOOLEAN;
begin
  if GetKeyState($10) < 0 then Result := True
    else Result := False;
end;
helper999999 вне форума Ответить с цитированием
Старый 18.08.2015, 21:40   #4
ResourceSpace
Форумчанин
 
Аватар для ResourceSpace
 
Регистрация: 30.06.2015
Сообщений: 353
По умолчанию

Нафига? Вставляйте в Делфи код на Делфи, и не морочьте никому голову.

З.Ы. Кстати,
  • во-первых корректнее не "GetKeyState($10)<0", а "(GetKeyState($10) And $8000)>0" (а лучше вообще вынести в константу "Const SHIFTED = $8000;");
  • во-вторых вместо «магического числа» "$10" корректнее писать VK_SHIFT;
  • в-третьих как верно заметил type_Oleg - "IF" тут явно лишнее;

Последний раз редактировалось ResourceSpace; 18.08.2015 в 23:15. Причина: З.Ы.
ResourceSpace вне форума Ответить с цитированием
Старый 18.08.2015, 22:17   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Я не понимаю, зачем так
Код:
if GetKeyState($10) < 0 then Result := True
    else Result := False;
Когда можно так
Код:
Result :=GetKeyState($10) < 0;
type_Oleg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Состояние: Не отвечает ddwnik Общие вопросы Delphi 0 13.03.2015 17:33
Сервлет и состояние Funky Jam Общие вопросы по Java, Java SE, Kotlin 0 02.11.2011 16:15
Состояние принтера Coryphaeus Помощь студентам 0 16.02.2010 21:16
Состояние клавиш... alexmikt Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 30.10.2009 23:48
состояние CDRom joker Win Api 12 27.01.2008 08:06