Move проблем

3 отговора 75 прегледа
#1

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.

Редактирано от Flashman на

Отговор
в отговор на Flashman #2

Re: Move проблем

Проблема е че си сложил кода в Image1_MouseMove... Параметрите Х и У са координати спрямо горния ляв край на картинката, а Image.Move мести обекта спрямо контейнера и...

Епа, това е моето хоби... [линк]
Отговор
в отговор на Flashman #3

Re: Move проблем

Ами, най-вероятно защото X и Y ти връщат стойността, която съответства на разстоянието на най-лявата част на Image обекта до мишката, и респективно от горната част на Image до мишката. Т.е. ти нямаш откъде да засечеш разстоянието от началото на формата, освен ако не го включиш така:


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


и кажи дали те устройва като решение.

Отговор
в отговор на Щиpлиц #4

Re: Move проблем

Мерси, това ми трябваше.

Don't hate the player, hate the game.
Отговор