![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| arankar |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 5.10.2009 Репутация: нет Всего: нет |
вот такой код не ловить. что у меня неправильно или это сообщение перекрыто у родителя? Как это можно реализовать???
Это сообщение отредактировал(а) Rrader - 29.12.2010, 10:44 |
||||
|
|||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Будет получать, если будет фокус на данном компоненте.
Т.к. Panel обычно фокус не получает, поставь ей TabStop = true, чтобы получала. Или кинь на неё компонент, который поймает фокус (например кнопку) |
|||
|
||||
| CROTishka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 30.7.2009 Репутация: 1 Всего: 2 |
TPanel не может получать фокус. WM_MOUSEWHEEL получает активный(под фокусом ввода) контрол
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Если этот контрол будет лежать на панели, то получать он будет после того, как панель ему сообщение отдаст.
То есть сначала это сообщение получит панель, а потом уже дочерний компонент. Если же панель имеет TabStop = true, то сама может получить фокус и являться конечным получателем. |
|||
|
||||
| CROTishka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 30.7.2009 Репутация: 1 Всего: 2 |
Snowy, ответьте лучше на мой вопрос в этом разделе
Это сообщение отредактировал(а) CROTishka - 29.12.2010, 13:12 |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Может быть глупый вопрос, но тем не более: на форме/фрейме лежит TPanel или TWheelPanel?
|
|||
|
||||
| arankar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 5.10.2009 Репутация: нет Всего: нет |
Snowy, спасибо за идею получилось, только TabStop true не делаю а при вхождении курсора если фокуса нету вызываю SetFocus. Теперь когда курсор покидает панель как можно убрать фокус, или другому оконному элементу надо фокус отдать?
kami, экземпляр класса TWheelPanel на форме Это сообщение отредактировал(а) arankar - 29.12.2010, 14:57 |
|||
|
||||
| CROTishka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 30.7.2009 Репутация: 1 Всего: 2 |
лучше сделайте так чтобы форма ловила WM_MOUSEWHEEL и слала его контролу под мышкой. (возможно ещё сообщения почистить придётся, чтобы фокусу не приходило).
Хотя вообще странный у вас функционал какой-то Это сообщение отредактировал(а) CROTishka - 29.12.2010, 15:20 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Перед тем, как забрать у кого-нибудь фокус, запомни ActiveControl, а потом верни фокус ему.
А про табстоп я упоминул, как альтернативу. Например, если на панели нет никаких контролов, способных получить фокус... Добавлено через 2 минуты и 34 секунды CROTishka, ты не поверишь, но у него свой компонент - наследник панели. И он не умеет приказывать форме ловить сообщения. |
|||
|
||||
| arankar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 5.10.2009 Репутация: нет Всего: нет |
Snowy, внутри моего класса, ActiveControl как можно узнать или как свойство форму передать надо???
если setFocus делаю работает даже если на панели нету никаких контролов это нормально? CROTishka почему странный? в чем странность? просто хочу чтобы все осталось внутри класса Это сообщение отредактировал(а) arankar - 30.12.2010, 06:22 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Если тебя бросили на форму, то форма - твой владелец. А у формы можно спросит, кто сейчас активный.
|
|||
|
||||
| CROTishka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 30.7.2009 Репутация: 1 Всего: 2 |
я просто предположил, что у него задача не сделать контрол, а реализовать некую фичу, которую можно реализовать по-другому. http://www.gunsmoker.ru/2008/10/x-y-z.html |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |