![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Зелень
Форумчанин
Регистрация: 03.02.2007
Сообщений: 302
|
![]()
Такое вот дело, как-то сижу и небыло чем заниматься, давай делать че-нить на паскале и стыкнулся с одной маленькой проблемой.
Как в паскале зацыклить событие - звукой сигнал при нажатии кнопки. Но, чтобы прога себе работа и при нажатиях клавиатуры любой кнопки было звуковой сигнал. Думал, думал, ниче не могу придумать. Написал процедурку, правда только с одной кнопкой, но так и не смог сделать ее по кругу. Например, я использовал Ентер, когда нажимаю Ентер, появлятьеся звук-задержка на 1с-выключил звук. И то это было одноразово. Блин ну и наплел же я. Думаю суть понята-звуковое сопровождение при нажатии любой кнопки. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 321
|
![]()
Напиши цикл Repeat....Untill и в нём обрабатывай нажатия клавиш.
Выход по Untill при нажатии определённой клавиши |
![]() |
![]() |
![]() |
#3 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Ну вообще то мы делали так: Меняли вектор клавпрерывания (9H кажись) на свой обработчик, и там уже пишали сколько угодно.
I'm learning to live...
|
![]() |
![]() |
![]() |
#4 |
Зелень
Форумчанин
Регистрация: 03.02.2007
Сообщений: 302
|
![]()
Да пробовал!!! Вот только у меня же не только эта процедура должна выполняться, но и другие. Если зацыклить только эту, другие не будут выполняться.
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 24.06.2007
Сообщений: 351
|
![]()
...Недавно в одной из тем рассматривалась чтение событий с клавиатуры, там я упоменул про keypressed, и незря, меня еще спросили зачем оно нужно... Вот подходящий пример.
Исходный код Код:
Я не маюсь бездельем, я от него тащусь!
|
![]() |
![]() |
![]() |
#6 |
Зелень
Форумчанин
Регистрация: 03.02.2007
Сообщений: 302
|
![]()
Tayfun огромное спасибо, я вообще давно уже искал, как можно использовать стрелочки. За это благодарство.
Но, я так понял, меня не совсем поняли. Программа, работает себе, а звук себе, когда я нажимаю какие-то клавиши, тогда происходит звуковое сообщение. В даном случае сам смысл программы не исполняеться пока я не нажму ескейп. Даным способом можно было бы описать на каждую клавишу событие, но это же гемор, я вот голову ломаю, как сделать, чтобы процедурка звука работала не зависимо, как бы от хода программы, программа выполняеться и по ходу всегда активна процедура звука. И чтобы звук извлекался при нажитии любой клавиши. Код:
Последний раз редактировалось Alex21; 24.10.2007 в 10:02. Причина: code |
![]() |
![]() |
![]() |
#7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Небесный, мона я угадаю :
Код:
I'm learning to live...
Последний раз редактировалось Alex21; 24.10.2007 в 10:02. Причина: code |
![]() |
![]() |
![]() |
#8 | ||
Зелень
Форумчанин
Регистрация: 03.02.2007
Сообщений: 302
|
![]()
Stilet это все тоже, эта процедурка не будет постоянно активна.
Цитата:
![]() Вот сдесь ты правильно сказал, только я не знаю, как это все оформить, не стыкался с этим. Цитата:
Последний раз редактировалось Небесный; 12.10.2007 в 09:35. |
||
![]() |
![]() |
![]() |
#9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Ты не понял... Это каркас.
Вот там где Writeln нуна писать свои действия которые закончив отработку проверят на нажатие клавиши и снова начнут работать. Насчет прерывания не все просто, у мя примеров вроде не осталось... Ты луче скажи какие действия ты хош выполнять параллельно с проверкой нажатия клавиши?
I'm learning to live...
|
![]() |
![]() |
![]() |
#10 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
![]()
Автору нужно некое подобие многозадачности, как с прерываниями сделать - не знаю )
Сам с таким когда-то сталкивался, когда надо было сделать фоновую музыку в игре, и циклы тут не помогут. Сделал тогда "супер-заумно через полную Ж" - используя либу псевдомногозадачности - код, зацикленно играющий музыку, выносился в процедуру MusicProc, основной код в MainProc, сама программа сводилась к виду типа MakeTask(@MusicProc,<стек>); MakeTask(@MainProc,<стек>); -- нашел http://pascal.sources.ru/multtask/multi1.htm
пыщь
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Icq сообщение | Marsik | Помощь студентам | 2 | 10.04.2008 04:22 |
Как прочитать сообщение по ICQ? | Иллидан | Работа с сетью в Delphi | 5 | 18.02.2008 18:33 |
Звуковое сопровождение при компиляции | John_chek | Общие вопросы Delphi | 2 | 23.01.2008 12:36 |