Mouse Event

3 отговора 139 прегледа
#1

Mouse Event

Здравейте,

Как трябва да постъпя в следния случай?:
Формата ми трябва да обработава тези събития:
OmMouseDown,OnMouseUp,OnDblClick обаче когато ползвам
OnDblClick не искам да се изпълняват OmMouseDown , OnMouseUp.
В момента се при OnDblClick се изпълняват OmMouseDown + OnMouseUp + OmMouseDown

Предварително благодаря!

Капка никотин убива кон, а чаша кафе - клавиатура.
Отговор
в отговор на trump #2

Re: Mouse Event

Можеш да прехващаш двойни кликове с OnMouseDown, като използваш някакъв флаг и таймер. При първото щракване вдигаш флага и го броиш за единичен клик (или не - зависи от логиката на програмата) и ако до изтичане на времевия интервал не настъпи друго събитие си остава единичен, а ако постъпи още един клик, става двоен. Не забравяй да деактивираш таймера и да сваляш флага, инак програмата ти ще "прещрака" .

Mixy
Отговор
в отговор на Mixy #3

Re: Mouse Event

ОК благодяря за отговора!

Капка никотин убива кон, а чаша кафе - клавиатура.
Отговор
в отговор на trump #4

И ползвай системната стойност Time за DblClick

Само че не се сещам как се казваше константата, но ще я намериш :)
(ако вече не си :)

Впрочем сега се сещам, че аз като го правя това не ползвам таймер, а просто запомням времето на клика и сетне (в другото събитие) го сравнявам с оная константа и си правя изводи (пести се един таймер :)

Редактирано от NikB на

Отговор