Страница: 1 | 2 |
Вопрос: События Click DblClick. Помогите пожалуйста!
Добавлено: 23.02.06 20:44
Автор вопроса: Arwen | Web-сайт:
Очень прошу помочь:
Требуется написать программу, которая по событиям Click и DblClick перемещает форму в разные положения на экране.
Однако вместо двойного щелчка срабатывает одинарный.:-(
Как должен выглядить код (используя таймер или без него), чтобы события одинарного и двойного щелчка обрабатывались раздельно и корректно?
Ответы
Всего ответов: 19
Номер ответа: 1
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #1
Добавлено: 23.02.06 21:47
Дык а тут время срабатывания двойного нажатия в самой винде скорее
всего тоже влияет, ну сделай одно событие по двойному, а одинарный
убери.
Номер ответа: 2
Автор ответа:
Arwen
Вопросов: 1
Ответов: 4
Web-сайт:
Профиль | | #2
Добавлено: 23.02.06 23:06
Убрать невозможно, в этом суть задания... Прошу прощения за ламерство но надо реализовать конкретно вот эту задачу:
Создать программу, состоящую из двух форм. Главная форма должна иметь две кнопки управления: показать вторую форму и выйти из программы. Вторая форма должна иметь одну кнопку для возврата в главную форму. Вторая форма должна появляться на экране так, чтобы ее левый верхний угол совпадал с правым нижним углом первой. При щелчке мышью на второй форме она должна перемещаться вокруг первой по часовой стрелке (из исходного положения - в положение, когда правый верхний угол второй формы совпадает с левым нижним первой), при двойном щелчке - против часовой стрелки. В заголовок первой формы выводить ее координаты, в заголовок второй - каким углом она касается первой.
Меня интересует только как избежать конфликта двух событий. Т.е. как, скажем, при помощи таймера, проверять последует ли за одинарым щелчком еще один в коротком интервале времени, или нет.
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 23.02.06 23:19
хук мыши на WM_LBUTTONDBLCLK
Номер ответа: 4
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #4
Добавлено: 24.02.06 08:56
Вот отсюда смотри
x As Single, y As Single)
' События, связанные с иконкой можно узнать по координате X
If x / Screen.TwipsPerPixelX = WM_MOUSEMOVE Then
IconData.szTip = Label1.Caption & Chr(0)
Shell_NotifyIcon NIM_MODIFY, IconData
End If
If x / Screen.TwipsPerPixelX = WM_RBUTTONDOWN Then
Text1.Text = Winsock1.LocalIP
Form1.Visible = True
End If
If x / Screen.TwipsPerPixelX = WM_LBUTTONDOWN Then
Form1.Visible = False
End If
If x / Screen.TwipsPerPixelX = WM_LBUTTONDBLCLK Then
End
End If
End Sub
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 24.02.06 16:17
root, о великий бог VB программирования, просвети плиз меня и всех
остальных как твой шмот кода относится к поставленной задачи?
Номер ответа: 6
Автор ответа:
Arwen
Вопросов: 1
Ответов: 4
Web-сайт:
Профиль | | #6
Добавлено: 24.02.06 18:08
Я к сожалению тоже не поняла, поэтому можно переформулирую вопрос, как оперируя возможностями VB 6.0, реализовать мою прогу...
А если совсем кокретнее - то как используя объект Таймер реализовтаь процедуру - если после первого клика через 0,5 секунд еще один клик - то мы делаем одно, если за этот интервал времени ничего не произошло, то мы делаем другое?
Номер ответа: 7
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #7
Добавлено: 24.02.06 19:37
Для примера привел как можно использовать
WM_RBUTTONDOWN
WM_LBUTTONDOWN
WM_LBUTTONDBLCLK
А тебе смотрю всё и все не нравятся, лишь бы кого нить покритиковать!
Спокойно не живется.
Тебя ни кто не замечает и ты злишься...
Я себя спокойно веду и тебе того же советую
Номер ответа: 8
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #8
Добавлено: 24.02.06 20:02
Temp=Time+30
Do While Time<Temp
DoEvents
Loop
Номер ответа: 9
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #9
Добавлено: 24.02.06 20:07
Да. Бяка редкостная.
Предлагаю сделать так (забыв о даблклике):
*Ставим таймер на время, чуть-чуть превышающее интервал даблклика.
*При щелчке запускаем таймер.
*При двойном щелчке делаем поворот в нужном направлении и тормозим таймер.
*А в событии таймер поворачиваем форму в другом нужном направлении и тормозим таймер.
Это решение не самое приятное, но думаю сойдет.
Номер ответа: 10
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #10
Добавлено: 24.02.06 20:09
Фу. Вот это
Номер ответа: 11
Автор ответа:
Arwen
Вопросов: 1
Ответов: 4
Web-сайт:
Профиль | | #11
Добавлено: 24.02.06 20:10
Victor, [root], HACKER огромное спасибо, будут еще идеи - с удовольствием почитаю!
Номер ответа: 12
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #12
Добавлено: 24.02.06 20:27
какой таймер? какой поворт? шо там тормозим??? ) Вы чё все с дуба
рухнули? Смотрите примеры хука мыши! там даблклик ловится, сообщение =
той константе что я привёл, найти константу в апи вьювере...
Номер ответа: 13
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #13
Добавлено: 24.02.06 20:27
угага ты привёл пример использования константы? Но даже описания их
не дал.. и говоришь что ты привёл какой-то там пример ) Короче от
фонаря кинул шмот кода в котором нашёл похожие буковки )))
Номер ответа: 14
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #14
Добавлено: 24.02.06 22:11
да согласен, не совсем полностью код дал, а ты бы темы почитал прежде
чем бросаться словами, прочитай что нужно было сделать, поймешь, что
повернуть и зачем
Номер ответа: 15
Автор ответа:
Arwen
Вопросов: 1
Ответов: 4
Web-сайт:
Профиль | | #15
Добавлено: 24.02.06 22:19
Все спасибо всем, программа написана и ссориться не надо. Вы мне действительно ооочень помогли!
Особое спасибо Victor-у именно так прогу я и релизовала!