Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль
Регистрация

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

Ответ
 
Опции темы
Старый 25.06.2010, 16:10   #1
zumm
БохЪ
Участник клуба
 
Аватар для zumm
 
Регистрация: 30.09.2009
Адрес: Здесь
Сообщений: 724
Репутация: 119

icq: 603350749
По умолчанию Клавиатура

Возник вопросец, как узнать какие клавиши нажаты в данный момент (хотя бы 3 последних). Сколько не ламал голову над этим вопросом так и не понял как это коректно реализовать...

PS находил где модуль с реализацией, но там одна и таже клавиша читалсь по 20 раз в секунду...
__________________
В планах порабощение вселенной...
zumm вне форума   Ответить с цитированием
Старый 25.06.2010, 16:14   #2
_-Re@l-_
C++, Java
Профессионал
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Адрес: Екатеринбург
Сообщений: 2,665
Репутация: 420
По умолчанию

Код:

var k:char;
     A:array[1..3] of char;
...
k:=readkey;
A[1]:=k;
...
k:=readkey;
A[2]:=k;
...
k:=readkey;
A[3]:=k;

_-Re@l-_ вне форума   Ответить с цитированием
Старый 25.06.2010, 16:30   #3
zumm
БохЪ
Участник клуба
 
Аватар для zumm
 
Регистрация: 30.09.2009
Адрес: Здесь
Сообщений: 724
Репутация: 119

icq: 603350749
По умолчанию

А освобождать? вдруг клавиша уже не нажата?
__________________
В планах порабощение вселенной...
zumm вне форума   Ответить с цитированием
Старый 25.06.2010, 16:33   #4
_-Re@l-_
C++, Java
Профессионал
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Адрес: Екатеринбург
Сообщений: 2,665
Репутация: 420
По умолчанию

В общем, есть ещё логическая функция keypressed. Более не знаю.
_-Re@l-_ вне форума   Ответить с цитированием
Старый 25.06.2010, 17:02   #5
zumm
БохЪ
Участник клуба
 
Аватар для zumm
 
Регистрация: 30.09.2009
Адрес: Здесь
Сообщений: 724
Репутация: 119

icq: 603350749
По умолчанию

юзал я и keypressed, не помогло...может не правильно юзал...
__________________
В планах порабощение вселенной...
zumm вне форума   Ответить с цитированием
Старый 25.06.2010, 17:33   #6
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Адрес: Диаспар
Сообщений: 218
Репутация: 76

icq: 587990746
По умолчанию

Это делается следующим образом: создаёте бесконечный цикл (пусть выход из него будет при нажатии, к примеру, Esc) и пишете в нём:
Код:

ch : char;

if KeyPressed then
begin
 ch := ReadKey;
 case ch of
  32 : WriteLn('Вы нажали пробел');
  13 : WriteLn('Вы нажали Enter');
  112 : WriteLn('Вы нажали F1');
 end;
end;

__________________
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума   Ответить с цитированием
Старый 26.06.2010, 00:12   #7
zumm
БохЪ
Участник клуба
 
Аватар для zumm
 
Регистрация: 30.09.2009
Адрес: Здесь
Сообщений: 724
Репутация: 119

icq: 603350749
По умолчанию

Олвин, не нада учить меня пользоваться стандартными процедурами и функциями Тут речь иде о том как узнать какие клавиши зажаты на ДАННЫЙ момент...
__________________
В планах порабощение вселенной...
zumm вне форума   Ответить с цитированием
Старый 26.06.2010, 13:02   #8
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Адрес: Диаспар
Сообщений: 218
Репутация: 76

icq: 587990746
По умолчанию

А какова задача? Может проще будет её решить стандартными средствами - без "извращений"?
__________________
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума   Ответить с цитированием
Старый 26.06.2010, 13:37   #9
zumm
БохЪ
Участник клуба
 
Аватар для zumm
 
Регистрация: 30.09.2009
Адрес: Здесь
Сообщений: 724
Репутация: 119

icq: 603350749
По умолчанию

Цитата:
А какова задача? Может проще будет её решить стандартными средствами - без "извращений"?
задачу я уже не однократно описывал
__________________
В планах порабощение вселенной...
zumm вне форума   Ответить с цитированием
Старый 26.06.2010, 17:02   #10
Stepler
Форумчанин
 
Аватар для Stepler
 
Регистрация: 03.02.2008
Сообщений: 213
Репутация: 37

icq: 392-172-602
По умолчанию

Чем собственно ReadKey не устраивает? Функция возвращает сканкод последеней нажатой клавиши. Если хочется извращений то код последней нажатой клавиши можно прочитать с 60 порта.
__________________
Пишу программы на заказ, контакты под аватаром!
Отзывы тут
Stepler вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клавиатура с ps/2 к usb Mikhail Bakurov Железо 16 06.12.2014 00:11
клавиатура и си itwaswritten Помощь студентам 1 19.05.2010 14:47
Клавиатура Fenix_Elite Общие вопросы Delphi 5 23.11.2008 09:02
Клавиатура RealSHELS Общие вопросы Delphi 6 29.03.2008 16:52
Клавиатура Pusher Assembler 0 22.03.2008 01:47


18:34.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru