Поиск:

Ответ в темуСоздание новой темы Создание опроса
> нажатие кнопки на форме 
V
    Опции темы
Imidazol
Дата 13.1.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 14.5.2007

Репутация: нет
Всего: нет



Добрый день!
У меня проблема такая, что по поверхности всей  главной Form1 стоит Image1, и на её Canvasе происходят все действия. Но мне надо улавливать нажатие клавиши, а ни один из методов Form1::OnKeyPressed, Form1::OnKeyUp не срабатывает при нажатии (я там маячок поставил). А у TImage такого метода, как OnKeyPressed нету. Как можно было бы отловить нажатие клавиши, никто не подскажет?
Спасибо.

Это сообщение отредактировал(а) Imidazol - 13.1.2009, 10:27
PM MAIL   Вверх
mrbrooks
Дата 13.1.2009, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(Imidazol @  13.1.2009,  10:24 Найти цитируемый пост)
А у TImage такого метода, как OnKeyPressed нету. Как можно было бы отловить нажатие клавиши, никто не подскажет?

тут есть два способа. описать новое событие через карту событий, либо перегрузить функцию WindowProc компонента.
PM MAIL   Вверх
xvr
Дата 13.1.2009, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Проперть KeyPreview в true не забыл поставить у формы?

PM MAIL   Вверх
mrbrooks
Дата 13.1.2009, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



xvr, камрад а при чем тут форма - он же про TImage говорил.
PM MAIL   Вверх
Imidazol
Дата 13.1.2009, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 14.5.2007

Репутация: нет
Всего: нет



Цитата(mrbrooks @ 13.1.2009,  10:47)
тут есть два способа. описать новое событие через карту событий, либо перегрузить функцию WindowProc компонента.

KeyPreview у меня стояла true. 
Я именно и хочу разобраться, почему у меня форма не получает KeyPress, ведь она родитель, через неё в первую очередь все нажатия идут.
А про кату событий и WindowProc мне не понятно, я глубже интерфейса Borlandского не залазил ешё.

Добавлено через 8 минут и 43 секунды
Oй! всем спасибо! У меня до этого уже Release был в Compilere, а я обратно FullDebug поставил и всё чудесным образом заработало!!!
PM MAIL   Вверх
xvr
Дата 13.1.2009, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(mrbrooks @ 13.1.2009,  13:41)
xvr, камрад а при чем тут форма - он же про TImage говорил.

Угу, только события он ловит на форме, а не у TImage (ибо нет их там  smile )
PM MAIL   Вверх
mrbrooks
Дата 13.1.2009, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306




Цитата(xvr @  13.1.2009,  15:23 Найти цитируемый пост)
Угу, только события он ловит на форме, а не у TImage (ибо нет их там  smile ) 

обожди. как это нет smile просвети. или ты имеешь ввиду наследование?
PM MAIL   Вверх
Imidazol
Дата 13.1.2009, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 14.5.2007

Репутация: нет
Всего: нет



Эй, ребята! Я уже разобрался! Хватит здесь продолжать без меня!!! smile 
PM MAIL   Вверх
xvr
Дата 13.1.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(mrbrooks @ 13.1.2009,  15:36)
Цитата(xvr @  13.1.2009,  15:23 Найти цитируемый пост)
Угу, только события он ловит на форме, а не у TImage (ибо нет их там  smile ) 

обожди. как это нет smile просвети. 

Так. Вот события у TImage:
Код

    __property OnClick ;
    __property OnContextPopup ;
    __property OnDblClick ;
    __property OnDragDrop ;
    __property OnDragOver ;
    __property OnEndDock ;
    __property OnEndDrag ;
    __property OnMouseDown ;
    __property OnMouseMove ;
    __property OnMouseUp ;
    __property OnProgress;
    __property OnStartDock ;
    __property OnStartDrag ;
 Как видим, OnKeyPressed нету  smile 
PM MAIL   Вверх
mrbrooks
Дата 13.1.2009, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(xvr @  13.1.2009,  15:57 Найти цитируемый пост)
Как видим, OnKeyPressed нету  smile  

дык не кто и не спорит что оно есть. яж что писал то
Цитата(mrbrooks @  13.1.2009,  10:47 Найти цитируемый пост)
тут есть два способа. описать новое событие через карту событий, либо перегрузить функцию WindowProc компонента. 

то бишь самому написать.
PM MAIL   Вверх
xvr
Дата 13.1.2009, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(mrbrooks @ 13.1.2009,  15:59)
Цитата(xvr @  13.1.2009,  15:57 Найти цитируемый пост)
Как видим, OnKeyPressed нету  smile  

дык не кто и не спорит что оно есть. яж что писал то
Цитата(mrbrooks @  13.1.2009,  10:47 Найти цитируемый пост)
тут есть два способа. описать новое событие через карту событий, либо перегрузить функцию WindowProc компонента. 

то бишь самому написать.

Или ловить его на форме, куда оно в конце концов упадет, если у формы стоит проперть KeyPreview, о чем собственно я и писал.
Вопрос в том, где надо ловить клавиши - только на TImage (тогда твой вариант предпочтительнее) или везде по форме (тогда ловить на форме предпочтительнее, не говоря уже о том, что это проще  smile )

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1675 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.