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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2012, 20:07   #1
Григоренко Степан
Пользователь
 
Регистрация: 05.05.2011
Сообщений: 35
По умолчанию Получить код нажатой клавиши на картинке

Здравствуйте. Проблема такая.
На картинке сначала идет щелчок мышкой, потом нажимается клавиша.
Нужно получить код этой клавиши. Проблема в том, каким событием это обработать. Есть ли у Имиджа какое - нибудь свойство подобное OnKeyPress?
Григоренко Степан вне форума Ответить с цитированием
Старый 30.10.2012, 20:37   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Событие OnkeyPress в дельфях идет от класса TWinControl, а TImage порождается напрямую от TControls в обход этого класса.
Так что, вероятнее всего, придется писать собственный класс, наследующий все лучшее от двух вышеназванных, либо искать левые компоненты, где все это реализовано.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 30.10.2012, 20:40   #3
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

А если "вручную" прикрутить событие(я имею ввиду procedure ProcName(Params...); message кое-что )? Тоесть перехватить message.
Delphi_ProGer вне форума Ответить с цитированием
Старый 30.10.2012, 20:47   #4
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

А если кинуть на форму какой нибудь прозрачный компонент типа paintbox(типа, но не его) и поставить выше(brighttofront) timage?
Кольша вне форума Ответить с цитированием
Старый 30.10.2012, 20:52   #5
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Да можно и без этого всего тогда... На событие OnKeyPress формы проверять положение мыши, и если ее координаты внутри картинки - делать, что нужно.
Ну или другое какое условие - по желанию и необходимости.

Я просто думал, что надо именно TImage заставить реагировать на нажатие...

UPD. Был прав, да не во всем... Если на форме есть активный элемент типа кнопки с фокусом на нем, то не сработает. То есть - нужно писать процедуру проверки нажатия и вгонять ее в KeyPressed всех компонент формы... тягомотно как-то
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 30.10.2012, 21:24   #6
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Можно проверять нажата ли клавиша по ее коду с помошью функции
Код:
function Key_Press(key: byte): boolean;
var
  keys: TKeyboardState;
begin
  result:=false;
  GetKeyboardState(keys);
  if(keys[key]=128)or(keys[key]=129)then result:=true;
end;
Вадим Буренков вне форума Ответить с цитированием
Старый 01.11.2012, 16:46   #7
Григоренко Степан
Пользователь
 
Регистрация: 05.05.2011
Сообщений: 35
По умолчанию

Спасибо за ваши ответы, сейчас попробую!
Григоренко Степан вне форума Ответить с цитированием
Старый 06.11.2012, 10:35   #8
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

можно еще hook'и использовать
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 27.11.2012, 01:43   #9
isqoff
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 12
По умолчанию

в принципе решил вашу проблему(хотя конечно смотря для чего),но для примитива,если актуально могу поделиться
isqoff вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить 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