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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.036 c
3-1126247692
Beetle(c)]u$
2005-09-09 10:34
2005.10.23
Commit в IBase


14-1128177952
ArtemESC
2005-10-01 18:45
2005.10.23
Отключиться от ИНЕТА


14-1127968843
Ученик чародея
2005-09-29 08:40
2005.10.23
Почему в России TV такое серое.


1-1128069311
IfBeginThenEnd
2005-09-30 12:35
2005.10.23
Класс контейнера


8-1117461661
nes
2005-05-30 18:01
2005.10.23
Проигрывание *.mp3 с ресурса





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