Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2009, 12:28   #1
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию Проблема с обработкой нажатой клавиши

добрый день.

Мне необходимо обрабатывать нажатие клавиши Энтер. но в программе, при нажатии на Энтер запускается процедура для кнопки, на которую в последний раз нажимали.
как мне можно снять это "выделение" кнопки, чтобы при нажатии на энтер, вызывался мой обработчик?
Bayazet вне форума Ответить с цитированием
Старый 10.02.2009, 12:34   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Bayazet Посмотреть сообщение
...в программе, при нажатии на Энтер запускается процедура для кнопки, на которую в последний раз нажимали...
Бред какой-то... Ваш обработчик - в студию!
mihali4 вне форума Ответить с цитированием
Старый 10.02.2009, 12:34   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Обработчик пиши для OnKeyPress формы и выставь для нее KeyPreview в true
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2009, 12:44   #4
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию

Код:
procedure TMF.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
дело в том, что в самом начале пользователь должен нажать кнопку на форме "загрузить карту"
после нажатия мышкой на эту кнопку, курсор остается на кнопке и при нажатии на энтер, нажимается кнопка, а нужно, чтобы вызывался обработчик.
понятно объяснил?
Bayazet вне форума Ответить с цитированием
Старый 10.02.2009, 13:00   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

После загрузки карты кнопку блокируй
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2009, 13:04   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
После загрузки карты кнопку блокируй
Совершенно верно, я тоже хотел сказать про Button1.Enabled:=False после ее нажатия и Button1.Enabled:=True после нажатия ENTER.
Тем более, что смысла в повторном нажатии на кнопку (подряд) нет.
Как вариант можно еще переводить фокус на другой компонент (если он есть).

Последний раз редактировалось mihali4; 10.02.2009 в 13:06.
mihali4 вне форума Ответить с цитированием
Старый 10.02.2009, 13:06   #7
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию

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

а вот вариант с переводом фокуса - весьма интересен, можно ли по-подробнее?

Последний раз редактировалось Bayazet; 10.02.2009 в 13:13. Причина: догрузилось
Bayazet вне форума Ответить с цитированием
Старый 10.02.2009, 13:21   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Bayazet Посмотреть сообщение
а вот вариант с переводом фокуса - весьма интересен, можно ли по-подробнее?
Перевод фокуса поможет, если он будет переводиться на эдит, листбокс и т.п.
Подозреваю, что там одни кнопки.
Еще вариант - все кнопки заменить на SpeedButton - он не принимают фокус.

Последний раз редактировалось mihali4; 10.02.2009 в 13:25.
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение сканкода нажатой клавиши Peter86 Общие вопросы Delphi 6 07.01.2009 08:25
вывести код нажатой клавиши fclmhooligan JavaScript, Ajax 0 22.10.2008 09:32
Проблема с обработкой DBF файла oleg kutkov Общие вопросы C/C++ 1 22.08.2008 21:07
Помогите с обработкой изображений Dude_first Мультимедиа в Delphi 3 31.08.2007 16:54