OVH Cloud OVH Cloud

Déplacement d'un label sur un label

1 réponse
Avatar
Michel
Bonsoir
Michel Pierron m'a fournit cette procédure qui fonctionne très bien sur un
userform
Est-il possible d'avoir la même chose mais que cette fois-ci ce soit le
label qui se déplace de manière aléatoire sur un autre label ?
Merci beaucoup
Michel


Private x!, y!, OK As Boolean

Private Sub CommandButton1_Click()
OK = False
End Sub

Private Sub UserForm_Activate()
OK = True
LabelMove
End Sub

Private Sub UserForm_Initialize()
x = Me.InsideWidth - Me.Label1.Width
y = Me.InsideHeight - Me.Label1.Height
Randomize
End Sub

Private Sub LabelMove()
Dim S As Single
Do While OK
S = Timer + 1 / 2
While Timer < S: DoEvents: Wend
Me.Label1.Move x * Rnd(1), y * Rnd(1)
Me.Repaint
Loop
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
OK = False
End Sub

1 réponse

Avatar
Michel Pierron
Bonjour Michel;
Il faut bien sur que le label d'accueil (par exemple: label2) soit plus
grand que le label accueilli (par exemple: label1) et tu modifies comme suit
:
Private x!(1 To 2), y!(1 To 2), OK As Boolean

Private Sub UserForm_Initialize()
x(1) = Me.Label2.Left
x(2) = Me.Label2.Width - Me.Label1.Width
y(1) = Me.Label2.Top
y(2) = Me.Label2.Height - Me.Label1.Height
Me.Label1.ZOrder 0
Randomize
End Sub

Private Sub LabelMove()
Dim S As Single
Do While OK
S = Timer + 1 / 2
While Timer < S: DoEvents: Wend
Me.Label1.Move x(1) + x(2) * Rnd, y(1) + y(2) * Rnd
Me.Repaint
Loop
End Sub

MP

"Michel" a écrit dans le message de news:

Bonsoir
Michel Pierron m'a fournit cette procédure qui fonctionne très bien sur un
userform
Est-il possible d'avoir la même chose mais que cette fois-ci ce soit le
label qui se déplace de manière aléatoire sur un autre label ?
Merci beaucoup
Michel


Private x!, y!, OK As Boolean

Private Sub CommandButton1_Click()
OK = False
End Sub

Private Sub UserForm_Activate()
OK = True
LabelMove
End Sub

Private Sub UserForm_Initialize()
x = Me.InsideWidth - Me.Label1.Width
y = Me.InsideHeight - Me.Label1.Height
Randomize
End Sub

Private Sub LabelMove()
Dim S As Single
Do While OK
S = Timer + 1 / 2
While Timer < S: DoEvents: Wend
Me.Label1.Move x * Rnd(1), y * Rnd(1)
Me.Repaint
Loop
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
OK = False
End Sub