Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.23;
Скачать: CL | DM;

Вниз

как опросить клавиотуру?   Найти похожие ветки 

 
userrrrr   (2005-09-28 19:36) [0]

Как можно програмно опросить состояние клавиатуры?
типа как в Паскале readkey


 
begin...end ©   (2005-09-28 19:39) [1]

GetKeyboardState ?


 
userrrrr   (2005-09-28 21:46) [2]

а как это работает какие переменные (тип)


 
MSDN   (2005-09-28 21:58) [3]

См. MSDN


 
userrrrr   (2005-09-28 22:16) [4]

а здесь не написать


 
Кефир87 ©   (2005-09-29 00:55) [5]

RTFM!


 
GanibalLector ©   (2005-09-29 01:21) [6]

Вероятно так :

function ReadKey:Boolean;
 var X:TKeyboardState;
 I:Integer;
begin
 Result:=False;
 GetKeyboardState(X);
 for I:=0 to $FF do
   if (X[I] and $80)>0 then
   begin
     Result:=True;
     Break;
   end;
end;


 
GuAV ©   (2005-09-29 14:47) [7]

Для консольных прилжений можно испльзовать


function readkey: Char;
var IR: TInputRecord; N: DWORD;
begin
ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE), IR, 1, N);
with IR.Event.KeyEvent do
begin
  if bKeyDown then
    Result := IR.Event.KeyEvent.AsciiChar
  else
    Result := #0;
end;
end;


 
userrrrr   (2005-09-29 20:22) [8]

че то не понял
мы ждем нажатия определенной клавиши каждые 100 мс опрашиваем клавиатуру и сверяем результат с тем что мы хотим получить как это зделать


 
GanibalLector ©   (2005-09-30 02:19) [9]

2 userrrrr   (29.09.05 20:22) [8]
Это для клавишы Esc.

function ReadKeyEsc:Boolean;
var X:TKeyboardState;
begin
Result:=False;
GetKeyboardState(X);
if (X[27] and $80)>0 then Result:=True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if ReadKeyEsc then
 begin
   Windows.Beep(800,200);
   Caption:="Дождались";
   Timer1.Enabled:=False;
   Timer1.Destroy;
 end else
 Caption:="Ждем-с";
end;


 
userrrrr   (2005-09-30 19:25) [10]

я так понял X[27] это и есть esc а что тогда $80 а как узнать какой номер у какой кнопки


 
userrrrr   (2005-10-02 21:23) [11]

что такое $80?


 
NightLord ©   (2005-10-02 21:29) [12]

Chr and Ord


 
userrrrr   (2005-10-02 21:38) [13]

а по подробнее


 
GanibalLector ©   (2005-10-03 01:52) [14]


Когда функция возвращает значение, каждый элемент массива, указанного параметром lpKeyState содержит данные о состоянии виртуальной клавиши. Если старший бит равен 1, клавиша нажата; иначе она не отпущена. Если младший бит равен 1, клавиша переключилась. Клавиша, такая как CAPS LOCK, переключается, если она является включенной. Клавиша выключена и не переключает, если младший бит равен 0. Когда клавиша переключается, индикатор переключения клавиши на клавиатуре (если он есть) должен быть включен, и отключен, когда клавиша не переключается.
Чтобы извлекать информацию состояния для отдельной клавиши, используйте функцию GetKeyState.


Что такое байт знаешь? А что такое бит???
З.Ы. Небольшая подсказка...$80 это 10000000h т.е. старший бит. Еще вопросы будут???



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

Текущий архив: 2005.10.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.04 c
14-1127883700
Ega23
2005-09-28 09:01
2005.10.23
С днем рождения! 28 сентября


3-1126674133
erika
2005-09-14 09:02
2005.10.23
Порядковый номер в наборе данных


14-1128243705
Piter
2005-10-02 13:01
2005.10.23
Дейл Роджерсон "Inside COM", Русское издание


6-1120482867
sunsay
2005-07-04 17:14
2005.10.23
Как узнать сколько байт собирается мне (клиенту) передать сервер


1-1128315242
Kacnep
2005-10-03 08:54
2005.10.23
Правильно завершить Приложение при создании





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский