Вопрос о MouseMove

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
HugoFlex
Новичок
Новичок
Аватара пользователя
 
Сообщения: 39
Зарегистрирован: 22.10.2004 (Пт) 21:31
Откуда: от верблюда

Вопрос о MouseMove

Сообщение HugoFlex » 23.10.2004 (Сб) 9:35

Как изменять рисунок обьекта при наведения на него мышки. И при отведение стрый рисунок востанавливалась?

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 23.10.2004 (Сб) 9:56

А что здесь сложного? Создаешь переменную - флаг, процедуру замены рисунка по значения флага (в ней проверяешь значение переменной, если оно изминилось, меняешь картинку), а дальше ловишь событие у объекта если флаг не равен 1, ставишь флаг=1, вызаваешь процедуру изменения картинки, дальше ловишь это же событие у формы, только здесь уже смотришь по значению флага, если он равен 1, ставишь 0, вызаваешь процедуру. Думаю, принцип понятен. А еще, если рядом с картинкой есть другие объекты, то делаешь то же самое, что и с формой. К сожалению, я на работе, посему, примера найти не могу.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

HugoFlex
Новичок
Новичок
Аватара пользователя
 
Сообщения: 39
Зарегистрирован: 22.10.2004 (Пт) 21:31
Откуда: от верблюда

Сообщение HugoFlex » 23.10.2004 (Сб) 19:17

Я немного непонял! Вот например в VB .NET есть такой метод как MouseLeave, а в VB 6 этого нету. В таком случае как мне изменять значение перемменой, если не могу выяснить отвел ли пользователь мышку с данного обьекта?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 23.10.2004 (Сб) 19:34

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

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.10.2004 (Сб) 19:35

Если мышь прошла на другим объектом, то она ушла с этого :)

А вообще, есть функция trackmouseevent


[EDIT]Вау! Ты наконец-то сделал это! :)[/EDIT]
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

HugoFlex
Новичок
Новичок
Аватара пользователя
 
Сообщения: 39
Зарегистрирован: 22.10.2004 (Пт) 21:31
Откуда: от верблюда

Сообщение HugoFlex » 23.10.2004 (Сб) 20:00

tyomitch писал(а):Идея здесь в том, что если мышку с объекта увели, значит - куда-то привели. И вот в этом куда-то при этом произойдёт _MouseMove

Это и так понятно, что можно это сделать например так:
Код: Выделить всё
Private Sub Image_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Image1.picture=Image2.picture
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Image1.picture=Image3.picture
End Sub

Но это не так как мне хочется. Я где то слышал, что это можно отслеживать с помощю двух таймеров или с константой MOUSE_OUT

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 23.10.2004 (Сб) 20:55

Я делал так - на форме таймер. Отслеживает координаты курсора. Если курсор в пределах пикчера, то одна картинка. Иначе - другая. Код могу кинуть...

HugoFlex
Новичок
Новичок
Аватара пользователя
 
Сообщения: 39
Зарегистрирован: 22.10.2004 (Пт) 21:31
Откуда: от верблюда

Сообщение HugoFlex » 23.10.2004 (Сб) 21:54

Amed писал(а):Я делал так - на форме таймер. Отслеживает координаты курсора. Если курсор в пределах пикчера, то одна картинка. Иначе - другая. Код могу кинуть...

Так кидай его в форум

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 23.10.2004 (Сб) 21:58

Секунду... Скоро будет - надо сначала найти :)

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 23.10.2004 (Сб) 22:15

Вот оно! :)

HugoFlex
Новичок
Новичок
Аватара пользователя
 
Сообщения: 39
Зарегистрирован: 22.10.2004 (Пт) 21:31
Откуда: от верблюда

Сообщение HugoFlex » 23.10.2004 (Сб) 22:24

Спасибо!
Читай не затем, чтобы противоречить и опровергать, не затем, чтобы принимать на веру и не затем, чтобы найти предмет для беседы, но чтобы мыслить, рассуждать и мечтать.

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 23.10.2004 (Сб) 22:38

Amed, а зачем такие сложности?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 23.10.2004 (Сб) 22:41

А как проще? С MouseMove не всегда всё гладко. Попробуйте в примере с MouseMove резко дёрнуть мышью с пикчербокса за пределы формы. Иногда MouseMove на форме не срабатывает (не успевает проходить прерывание), а тут всё чётко. Да и несложно, вроде бы...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 80

    TopList