Mouse Event
3 отговора
139 прегледа
Mouse Event
Здравейте,
Как трябва да постъпя в следния случай?:
Формата ми трябва да обработава тези събития:
OmMouseDown,OnMouseUp,OnDblClick обаче когато ползвам
OnDblClick не искам да се изпълняват OmMouseDown , OnMouseUp.
В момента се при OnDblClick се изпълняват OmMouseDown + OnMouseUp + OmMouseDown
Предварително благодаря!
Капка никотин убива кон, а чаша кафе - клавиатура.
Как трябва да постъпя в следния случай?:
Формата ми трябва да обработава тези събития:
OmMouseDown,OnMouseUp,OnDblClick обаче когато ползвам
OnDblClick не искам да се изпълняват OmMouseDown , OnMouseUp.
В момента се при OnDblClick се изпълняват OmMouseDown + OnMouseUp + OmMouseDown
Предварително благодаря!
Капка никотин убива кон, а чаша кафе - клавиатура.
Re: Mouse Event
Можеш да прехващаш двойни кликове с OnMouseDown, като използваш някакъв флаг и таймер. При първото щракване вдигаш флага и го броиш за единичен клик (или не - зависи от логиката на програмата) и ако до изтичане на времевия интервал не настъпи друго събитие си остава единичен, а ако постъпи още един клик, става двоен. Не забравяй да деактивираш таймера и да сваляш флага, инак програмата ти ще "прещрака"
.
Mixy
Mixy
Re: Mouse Event
ОК благодяря за отговора!
Капка никотин убива кон, а чаша кафе - клавиатура.
Капка никотин убива кон, а чаша кафе - клавиатура.
И ползвай системната стойност Time за DblClick
Само че не се сещам как се казваше константата, но ще я намериш :)
(ако вече не си :)
Впрочем сега се сещам, че аз като го правя това не ползвам таймер, а просто запомням времето на клика и сетне (в другото събитие) го сравнявам с оная константа и си правя изводи (пести се един таймер :)
(ако вече не си :)
Впрочем сега се сещам, че аз като го правя това не ползвам таймер, а просто запомням времето на клика и сетне (в другото събитие) го сравнявам с оная константа и си правя изводи (пести се един таймер :)
Редактирано от NikB на