Главная страница
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.5 MB
Время: 0.042 c
1-1127899820
Sergey_R
2005-09-28 13:30
2005.10.23
Сохранение StringGrid в файл


3-1126287172
Кабан
2005-09-09 21:32
2005.10.23
DBLocupLookupComboBox


3-1126791472
Term
2005-09-15 17:37
2005.10.23
Народ нужно fibplus для 6-й делфи


2-1127749588
erika
2005-09-26 19:46
2005.10.23
fb


5-1103569355
klyonov
2004-12-20 22:02
2005.10.23
Установить значение свойства