![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 05.05.2011
Сообщений: 35
|
![]()
Здравствуйте. Проблема такая.
На картинке сначала идет щелчок мышкой, потом нажимается клавиша. Нужно получить код этой клавиши. Проблема в том, каким событием это обработать. Есть ли у Имиджа какое - нибудь свойство подобное OnKeyPress? ![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
![]()
Событие OnkeyPress в дельфях идет от класса TWinControl, а TImage порождается напрямую от TControls в обход этого класса.
Так что, вероятнее всего, придется писать собственный класс, наследующий все лучшее от двух вышеназванных, либо искать левые компоненты, где все это реализовано.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 30.10.2010
Сообщений: 524
|
![]()
А если "вручную" прикрутить событие(я имею ввиду procedure ProcName(Params...); message кое-что )? Тоесть перехватить message.
|
![]() |
![]() |
![]() |
#4 |
Далеко не
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,512
|
![]()
А если кинуть на форму какой нибудь прозрачный компонент типа paintbox(типа, но не его) и поставить выше(brighttofront) timage?
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
![]()
Да можно и без этого всего тогда... На событие OnKeyPress формы проверять положение мыши, и если ее координаты внутри картинки - делать, что нужно.
Ну или другое какое условие - по желанию и необходимости. Я просто думал, что надо именно TImage заставить реагировать на нажатие... UPD. Был прав, да не во всем... Если на форме есть активный элемент типа кнопки с фокусом на нем, то не сработает. То есть - нужно писать процедуру проверки нажатия и вгонять ее в KeyPressed всех компонент формы... тягомотно как-то ![]()
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
![]()
Можно проверять нажата ли клавиша по ее коду с помошью функции
Код:
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 05.05.2011
Сообщений: 35
|
![]()
Спасибо за ваши ответы, сейчас попробую!
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 31.05.2010
Сообщений: 12
|
![]()
в принципе решил вашу проблему(хотя конечно смотря для чего),но для примитива,если актуально могу поделиться
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как определить ASCII код нажатой клавиши. | vovken1997 | Общие вопросы Delphi | 2 | 16.04.2012 22:59 |
asm получить код нажатой клавиши... (?) | Denutrror | Общие вопросы Delphi | 15 | 31.03.2012 16:19 |
код нажатой клавиши Delphi | all_is_fear | Помощь студентам | 1 | 02.12.2011 10:35 |
код нажатой клавиши | galaid | Общие вопросы Delphi | 4 | 24.05.2009 20:03 |
вывести код нажатой клавиши | fclmhooligan | JavaScript, Ajax | 0 | 22.10.2008 09:32 |