Aide 'aspiration'

Résolu
Signaler
Messages postés
286
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2007
-
Messages postés
286
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2007
-
Bonjour, je voudrait faire en sorte, a l'aide d'un timer que des objets
se dirigent vers le centre de la form puis quand ils soient au mileu
reviennent, j'ai fait le code suivant:



Private Sub Timer1_Timer()

For Each object In Me

If TypeOf object Is Shape And object.Name <> "shpcentre" Then

Randomize Timer

If object.Left < Screen.Width / 2 Then

If object.Top < Screen.Height / 2 Then


object.Left = object.Left + ((object.Left / ((Screen.Width / 2) -
object.Left)) * Screen.TwipsPerPixelX) * 100


object.Top = object.Top + ((object.Top / ((Screen.Height / 2) -
object.Top)) * Screen.TwipsPerPixelY) * 100

Else


object.Left = object.Left + ((object.Left / ((Screen.Width / 2) -
object.Left)) * Screen.TwipsPerPixelX) * 100


object.Top = object.Top - ((object.Top / ((Screen.Height / 2) -
object.Top)) * Screen.TwipsPerPixelY) * 100

End If

Else

If object.Top < Screen.Height / 2 Then


object.Left = object.Left - ((object.Left / ((Screen.Width / 2) -
object.Left)) * Screen.TwipsPerPixelX) * 100


object.Top = object.Top + ((object.Top / ((Screen.Height / 2) -
object.Top)) * Screen.TwipsPerPixelY) * 100

Else


object.Left = object.Left - ((object.Left / ((Screen.Width / 2) -
object.Left)) * Screen.TwipsPerPixelX) * 100


object.Top = object.Top - ((object.Top / ((Screen.Height / 2) -
object.Top)) * Screen.TwipsPerPixelY) * 100

End If

End If

End If

Next



mais ça ne marche pas :(



quelqu'un a la, ou une autre solution ?

2 réponses

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
Private Sub Timer1_Timer()
Dim object As Object
Dim Lx As Integer
Dim Ly As Integer
Dim X As Integer
Dim Y As Integer
Dim Z As Integer


Lx = Me.ScaleWidth / 2
Ly = Me.ScaleHeight / 2


For Each object In Me
If TypeOf object Is Shape And object.Name <> "shpcentre" Then
X = object.Width / 2
Y = object.Left
Z = (Lx - X - Y) / 100 If Z <> 0 Then object.Left Y + Z Else object.Left Lx - X
X = object.Height / 2
Y = object.Top
Z = (Ly - X - Y) / 100 If Z <> 0 Then object.Top Y + Z Else object.Top Ly - X
End If
Next


End Sub

Daniel
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
286
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2007

ça marche merci bien gobillot :)