Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 090

Раздел: Delphi » Прочее
/ вопрос открыт /

Здравствуйте, эксперты!
Есть очень легкий вопросик: как можно на форме деативировать воздействие клавиатуры - на форуме MediaPlayer стоит - и при нажатии на пробел он занового вопроизводит трэк - как можно сделать, что бы это убрать - т. е.что бы при нажатии на пробел не было никакого эфекта? Спасибо)

Вечперик Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Вечперик (статус: Посетитель)
Вопрос отправлен: 16 ноября 2008, 12:31
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Интересно...
При создании формы: Form.KeyPreview:= True;
А на событие Form.OnKeyPress повесить:

if Key = 32
then Key:= 0;


З.Ы. Форум не читал.

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 16 ноября 2008, 19:45


Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 16 ноября 2008, 18:21; участников в обсуждении: 3.
unl0K

unl0K (статус: Посетитель), 16 ноября 2008, 16:15 [#1]:

Обработчик OnKeyPres там что пишишь key:='#0';
а системные клавиши труднее отключить можно Ассембелром!
Относись к людям так, как хотел бы, чтобы они к тебе относились!
Вадим К

Вадим К (статус: Академик), 16 ноября 2008, 17:57 [#2]:

Чем чем? Ассембелром? да да, он всемогущ:) Он ещё ганяет стаи туч... Стоп, это уже вроде Пушкин.

Вообще то пробел не запрограммирован на повтор трека. Он просто нажимает текущую выделенную клавишу в MediaPlayer - вполне нормальное, адекватное поведение в купе с тем, что стрелки влево-вправо переносят фокус по кнопкам.
Но если всё таки хочеться, что бы на пробел никак не реагировал компонент - пишите наследника, перекрывайте метод KeyDown и никаких проблем.
Галочка "подтверждения прочтения" - вселенское зло.
Nasgool

Nasgool (статус: 2-ой класс), 16 ноября 2008, 18:13 [#3]:

А можно еще проще!
Глядя на сказанное Вадимом., делаем так.
1) на onShow главной вормы ставим setfocus на любой объект в форме, кроме плеера.
2) В каждом обработчике событий на медиаплеер добавляем setfocus на любой объект в форме, кроме плеера.
Попробовал - все работает :)
Вадим К

Вадим К (статус: Академик), 16 ноября 2008, 18:21 [#4]:

да, вот только это индуский метод. и искоренять такое надо. А если у меня несколько сотен процедур, которые работают с медиаплеером (хотя если их сотня - это уже другая крайность).
А если потом проект попадёт к другому человеку и он будет выгребать месяцами, и забыв где то удалить одну строку, потом будет вспоминать "незлым тихим словом"?
А наследника написать - так в данном случае это десяток строк., даже меньше.
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:25
Выполнено за 0.02 сек.