Move проблем
3 отговора
75 прегледа
Move проблем
Пиша следното:
Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Image1.Move X, Y, 800, 800
End Sub
На пръв поглед това трябва да влачи Image1 по мишката. Да, ама се получава нещо много странно - Image1 подскача от едно място на друго и на сичкото отгоре позициата и няма нищо общо с позицията на мишката. Пробвах с Image.Left и Image1.Top но се получи същата глупост. Къде бъркам?
Don't hate the player, hate the game.
Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Image1.Move X, Y, 800, 800
End Sub
На пръв поглед това трябва да влачи Image1 по мишката. Да, ама се получава нещо много странно - Image1 подскача от едно място на друго и на сичкото отгоре позициата и няма нищо общо с позицията на мишката. Пробвах с Image.Left и Image1.Top но се получи същата глупост. Къде бъркам?
Don't hate the player, hate the game.
Редактирано от Flashman на
Re: Move проблем
Проблема е че си сложил кода в Image1_MouseMove... Параметрите Х и У са координати спрямо горния ляв край на картинката, а Image.Move мести обекта спрямо контейнера и...
Епа, това е моето хоби... [линк]
Епа, това е моето хоби... [линк]
Re: Move проблем
Ами, най-вероятно защото X и Y ти връщат стойността, която съответства на разстоянието на най-лявата част на Image обекта до мишката, и респективно от горната част на Image до мишката. Т.е. ти нямаш откъде да засечеш разстоянието от началото на формата, освен ако не го включиш така:
X1 и Y1 ще са разстоянията от рамката на формата до поинтера на мишката.
Не си казал как искаш да се държи формата при местене на мишката. Дали трябва да застава точно центрирано под мишката, или по някакви други съображения....
Опитай това:
и кажи дали те устройва като решение.
X1 = X + Image1.Left
Y1 = Y + Image1.Top
X1 и Y1 ще са разстоянията от рамката на формата до поинтера на мишката.
Не си казал как искаш да се държи формата при местене на мишката. Дали трябва да застава точно центрирано под мишката, или по някакви други съображения....
Опитай това:
Private Sub Image1_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
Image1.Left = Image1.Left - (Image1.Width \ 2 - X)
Image1.Top = Image1.Top - (Image1.Height \ 2 - Y)
End Sub
и кажи дали те устройва като решение.