![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 13.12.2008
Сообщений: 3
|
![]()
помогите написать процедуру, которая будет что-то делать пока зажата клавиша пробел.
вот что я имею: var c:char; procedure abc; while {зажата клавиша пробел} do begin write('эээ'); end; end; begin c:=ReadKey; c:=ord(c); abc; readln; end. что надо написать вместо {зажата клавиша пробел}? заранее спасибо. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 11.11.2008
Сообщений: 161
|
![]() Код:
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 13.12.2008
Сообщений: 3
|
![]()
Спасибо.
А если так.. Мне нужно чтоб при нажатии клавиши пробел комп пищал а при её отпускании переставал. Если вместо "write('Зажат пробел');" вставить "sound(round(100));" то при отпускании пробела звук будет продолжаться.. для этого мне и нужно отследить когда кнопка отпускается, чтоб использовать "nosound;".. Очень надо решить эту задачу. Помогите пожалуйста! Последний раз редактировалось Porkman; 13.12.2008 в 22:36. Причина: просто |
![]() |
![]() |
![]() |
#4 |
Капсула от спама
Форумчанин
Регистрация: 04.03.2008
Сообщений: 779
|
![]()
Дык у клавиатуры есть такая вищичка как буффер, то при "Пищании" паскаль не успевает выгребать буфер кнопок т.к. beep загружает его. После отпускания он догребает буфер а потом прекращается. И даже если ты уже не тыкаешь на заветный пробел - в буфере всёравно остаются данные и Паскаль не успокоиться пока не сожрёт весь буфер. Причём чем дольше держать - тем дольше продолжает пищать после стопа. Так?
![]() Как вариант попробуй подставить вместо sound(round(100)) sound(round(10)); Т.е. длина пика меньше и он должен успевать.
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг Последний раз редактировалось Dj_smart; 13.12.2008 в 23:09. |
![]() |
![]() |
![]() |
#5 |
Регистрация: 13.12.2008
Сообщений: 3
|
![]()
дело не в этом.
"sound(round(100));" - 100 - это частота колебания, то есть нота. Функция uses crt; begin sound(round(100)); end. включит пищалку. мне нужно просто отследить когда клавиша отжимается и вставить nosound; Как же мне это сделать?) |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Все висит пока выполняется процедура | XPAiN | Общие вопросы Delphi | 3 | 07.05.2008 15:03 |
Как создать обратную функцию, которая из уникального номера будет возвращать строку? | SkAndrew | Общие вопросы Delphi | 8 | 06.04.2008 21:10 |
процедура, которая вычисляет объем шара | motaro | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 21.01.2008 19:22 |