Форум: "Основная";
Текущий архив: 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