Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Необоснованно приходит DoubleClick. У кого-либо возникало?


DevilDevil ©   (2007-08-20 12:24:00) 

имеется несколько панелей. Непонятно почему, вдруг, при одинарном клике на панели или её дочернем компоненте приходит сообщение WMLButtonDblClk.

Ни у кого такой ерунды не возникало?


DevilDevil   (2007-08-21 17:28:00) [1]

фууууууууу........
залечил.... но первоисточник всёже неясен...

вобщем, после BringToFrontвызываю ещё SetFocus


DevilDevil   (2007-08-21 12:37:00) [2]

> Dib@zol ©   (21.08.07 11:28) [11]

вроде не похоже.

Событие OnEnterвозникает только при получении сообщения CMEnter.

BringToFrontприводит к SetZOrderPosition(Parent.Controls.Count-1);

ничего такого с MouseDownнет :(


Dib@zol   (2007-08-21 11:28:00) [3]

> Так вот... если панель активна и по ней кликнуть, то всё
> нормально, приходит OnMouseClick, а если панель неактивна,
> то при клике приходит DoubleClick !!!

Может быть, ВЦЛ просто симулирует нажатие кнопки мыши на неактивной панели, чтоб сделать её активной??? А то так ваще удобно: и активной становится и фокус появляется...


DevilDevil   (2007-08-21 11:24:00) [4]

> DVM ©   (21.08.07 10:51) [8]

мои панели - это наши компоненты, которые отличаются, но не очень сильно от обычонй панели. Этот компонент находится в пакейдже, все компоненты пакейджа написаны на билдере. + компоненты пакейджа используют один либ, размер которого огромен... :(((

Вот обраружил одну вещицу....
У каждого компонента есть событие OnEnter...
по этому событию панели вызывается BringToFront, панель "становится активной"

Так вот... если панель активна и по ней кликнуть, то всё нормально, приходит OnMouseClick, а если панель неактивна, то при клике приходит DoubleClick !!!

из-за чего такое происходит?


alshtam   (2007-08-21 10:53:00) [5]

У Tpanel есть событие OnmouseDown и Onmouseup


DVM   (2007-08-21 10:51:00) [6]


> Понимаю, в таких условиях мне помочь достаточно сложно..
> .
> Тем не менее, если кому то приходило сообщение двойного
> клика, в то время как должно приходить одинарного --- отпишитесь!
>

ты лучше смоделируй ситуацию в пустом проекте - в нем и будем глядеть


DevilDevil   (2007-08-21 10:50:00) [7]

> посади панели на mousedown или mouseUP
что это значит ?


alshtam   (2007-08-21 10:49:00) [8]

посади панели на mousedown или mouseUP
это сообщения Wm_LbuttonDown и Wm_LbuttonUP


DevilDevil   (2007-08-21 10:46:00) [9]

> max_   (21.08.07 09:46) [4]
> скинь код


ээээххххх :((((((((((
Проект коммерческий, здоровый (сорсы порядка 5мб) и на C++Builder.

Понимаю, в таких условиях мне помочь достаточно сложно...
Тем не менее, если кому то приходило сообщение двойного клика, в то время как должно приходить одинарного --- отпишитесь!


max_   (2007-08-21 09:46:00) [10]

скинь код


DevilDevil   (2007-08-20 13:59:00) [11]

> Dib@zol ©   (20.08.07 13:04) [1]

это врядли

> DVM ©   (20.08.07 13:26) [2]

на нескольких машинах?

в общем, если кто подскажет - будет здорово


DVM   (2007-08-20 13:26:00) [12]


> DevilDevil ©  

У вас "ля" западает, т.е. кнопка мыши.


Dib@zol   (2007-08-20 13:04:00) [13]

Возможно, это связано с тем, что у тебя слишком низкая скорость двойного клика. Проставь в панели управления скорость повыше и проверь - должно бы исчезнуть...


Наверх

Титульная страница Поиск, карта сайта Написать письмо