Страница: 1 |
Страница: 1 |
Вопрос: Ckick и DblClick по отдельности
Добавлено: 08.11.08 11:28
Автор вопроса: Владимир
У меня такая проблема:нужно чтобы обрабатывались событи Ckick и DblClick по отдельности.Т.е. при двойном щелчке событие клик не наступало.Можно ли это как то реализовать в vb6?
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #1
Добавлено: 08.11.08 12:59
Так уж устроена винда. Сначала клик, потом двойной клик. И вряд ли это можно как-то исправить. Есть способ, но он ОЧЕНЬ кривой
Номер ответа: 2
Автор ответа:
Боцман
ICQ: 295725312
Вопросов: 53
Ответов: 830
Web-сайт:
Профиль | | #2
Добавлено: 08.11.08 16:04
Событие наступит обязательно, но его можно проигнорировать. Типа так.
Dim kl As Boolean
Private Sub Picture1_Click()
Sleep 200
DoEvents
If kl = True Then
MsgBox "blClick однако", 0, ""
Else
MsgBox "Click однако", 0, ""
End If
kl = False
End Sub
Private Sub Picture1_DblClick()
kl = True
End Sub
Sleep 200 - у меня время двойного отклика настроенно меньше. Если у тебя больше, то время нужно увеличить.
Номер ответа: 3
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #3
Добавлено: 08.11.08 20:52
Боцман, мне кажется или ты sleep не там поставил?)
Номер ответа: 4
Автор ответа:
Боцман
ICQ: 295725312
Вопросов: 53
Ответов: 830
Web-сайт:
Профиль | | #4
Добавлено: 08.11.08 21:49
Наверно кажется. VB в другой операционке лень переходить, ведь и так ясно, что работать будет.
Номер ответа: 5
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #5
Добавлено: 09.11.08 10:40
Типа так.
Хм, дае два кривых способа есть
Номер ответа: 6
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #6
Добавлено: 09.11.08 13:36
Боцман, и правда работает. пару минут фтыкал как это работает)) преколно.
Номер ответа: 7
Автор ответа:
Боцман
ICQ: 295725312
Вопросов: 53
Ответов: 830
Web-сайт:
Профиль | | #7
Добавлено: 09.11.08 14:39
Вот еще в копилку, усовершенствованный косяк.
Private Declare Function GetDoubleClickTime Lib "user32" () As Long
Dim flag As Boolean
Private Sub Form_Click()
Sleep GetDoubleClickTime() + 10
DoEvents
If Not flag Then
Me.Caption = "Был Click"
Else
Me.Caption = "Был DblClick"
End If
flag = False
End Sub
Private Sub Form_DblClick()
flag = True
End Sub
Номер ответа: 8
Автор ответа:
Владимир
Вопросов: 9
Ответов: 9
Профиль | | #8
Добавлено: 11.11.08 07:34
Благодарю...очень помогли