Переместить объект в позицию с анимацией перемещение - VB

Формулировка задачи:

На форме timer1 и command1, command2 После того как кликаешь мышкой по форме кнопка command1 двигается в эту точку. Помогите исправить код чтобы перемещалось не в точку куда кликнешь а к координатам другого объекта например при нажатии на command2 чтобы command1 переместилась в положение к command2 Или кто может реализовать этот код проще по моей задаче потому что какой то код мудреный не разберусь никак с координатами тут их еще конвертировать надо фиг поймешь как
Option Explicit
Dim dx As Single, dy As Single, cnt As Long
 
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  dx = X - Command1.Left
  dy = Y - Command1.Top
  cnt = Sqr(dx ^ 2 + dy ^ 2) / Width * 50
  If cnt = 0 Then Exit Sub
  dx = dx / cnt
  dy = dy / cnt
 
  Timer1.Interval = 20
  Timer1.Enabled = True
 
End Sub
 
Private Sub Timer1_Timer()
  If cnt Then
    cnt = cnt - 1
    With Command1
      .Left = .Left + dx
      .Top = .Top + dy
    End With
  Else
    Timer1.Enabled = False
  End If
End Sub

Код к задаче: «Переместить объект в позицию с анимацией перемещение - VB»

textual
Option Explicit
Dim dx As Single, dy As Single, cnt As Long
 
Private Sub Command2_Click()
    dx = Command2.Left - Command1.Left
    dy = Command2.Top - Command1.Top
    cnt = Sqr(dx ^ 2 + dy ^ 2) / Width * 50
    If cnt = 0 Then Exit Sub
    dx = dx / cnt
    dy = dy / cnt
   
    Timer1.Interval = 20
    Timer1.Enabled = True
End Sub
 
Private Sub Timer1_Timer()
  If cnt Then
    cnt = cnt - 1
    With Command1
      .Left = .Left + dx
      .Top = .Top + dy
    End With
  Else
    Timer1.Enabled = False
  End If
End Sub

9   голосов, оценка 3.667 из 5


СОХРАНИТЬ ССЫЛКУ