Je crois que sleep bloque tout en vb6. Donc le programme ne fera absolument rien pendant ce temps.
Un autre moyen serait avec les timer, peut-être que vous ne vous êtes pas pris correctement (semi pseudocode) :
Code :
If keycode = 119 Then
Image1.Picture = LoadPicture(App.Path + "\Mario.gif")
Image1.Top = Image1.Top - 500
start ton timer (le mettre a enable)
-> lors du onload de la form tu auras préalablement initialisé l'interval de ton timer
End If
Timer_event
Image1.Top = Image1.Top + 500
stop l'exécution de ce timer (le mettre a disable)
fin_event
Parcontre, si quelqu'un refrappe de nouveau sur la touche 119 avant que le timer ait lieu, ton bonhomme va avoir monter de 1000 et le timer va juste le faire descendre de 500. Pour éviter ça tu peux te faire des constantes qui donne la valeur de image1.Top + 500 et - 500. Comme ça ton bonhomme n'ira pas plus haut ni plus bas à la suite d'un appel successif. S'il peut aller de plus en plus haut alors oubli ça.