Aide 'aspiration'

Résolu
retaks666 Messages postés 286 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 juillet 2007 - 14 janv. 2005 à 22:27
retaks666 Messages postés 286 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 juillet 2007 - 15 janv. 2005 à 12:05
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

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
15 janv. 2005 à 00:21
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
retaks666 Messages postés 286 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 juillet 2007
15 janv. 2005 à 12:05
ça marche merci bien gobillot :)
0
Rejoignez-nous