hola gente , como ago para move run onjeto alrededor de un form , es decir tengo un timer y label . yo quiero que el label se mueva por todo el form en random y que choque en los vordes , es decir que no pase tal cordenadas
con la api getcursorpos.
Lo que tienes que hacer es obtener la posicion del cursor y si pasa lo delimitado pues lo mueves.
Te ayudo un poco mas ;) esta es la api completa con ejemplo de como usarla
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Sub Form_Load()
Dim Pos As POINTAPI
GetCursorPos Pos
Label1 = Pos.x & " - " & Pos.y
End Sub
pero ahi me estas poninedo que me muestre las posiciones de un mouse , y yo quiero otra cosa
saludos
hola , to haciendo un ping pong y no se como hacer para que la pelota rebote en la paleta y cuando cambnie la lapeta de pocision siga rebotando
saludos
Cita de: koopa2 en 21 Julio 2006, 01:10 AM
pero ahi me estas poninedo que me muestre las posiciones de un mouse , y yo quiero otra cosa
saludos
Creo que te entendi mal :-[ , en este caso lo que puedes hacer es crear un control image y poner el gif de la pelota , crear un timer que cheque la posicion del gif y si esta cerca del borde que rebote.
Hola Koopa2 yo creo que esto es lo que vos buscas :
Abri un proyecto nuevo pones un timer y un label ,el label colcoalo al centro del formulario para que veas los movimientos ,copia y pega este codigo y juga con los valores asi te daras cuenta de como viene la cosa :
Option Explicit
'declaras 2 variables una para cada movimiento
Dim Horizontal As Integer
Dim Vertical As Integer
Private Sub Form_Load()
Timer1.Enabled = True 'inicia el Timer
Timer1.Interval = 100 'le pone intevalo
Vertical = -100 'asignas valor a las variables
Horizontal = -50 'idem
End Sub
Private Sub Timer1_Timer()
Label1.Top = Label1.Top + Vertical
'le dice que cada golpe de Timer le
'agregue -100 SUBE EL LABEL
Label1.Left = Label1.Left + Horizontal
'le dice que cada golpe de Timer le
'agregue -50 VA PA LA IZQUIERDA EL LABEL
'limite superior
If Label1.Top <= ScaleTop Then
'si llega al limite superior del form
Vertical = 100
'cambia el movimiento que era (-100)
Label1.Top = Label1.Top + Vertical
'lo hace ir para abajo
End If
'limite inferior
If Label1.Top >= ScaleHeight Then
Vertical = -100
Label1.Top = Label1.Top + Vertical
End If
'limite izquierdo
If Label1.Left <= ScaleLeft Then
Horizontal = 100
Label1.Left = Label1.Left + Horizontal
End If
'limite derecho
If Label1.Left >= ScaleWidth Then
Horizontal = -100
Label1.Left = Label1.Left + Horizontal
End If
End Sub
Espero que sea lo que buscas ,si queres que al llegar a los limites no salga de pantalla sumale o restale el ancho o el alto del label.
Chao viejo .-.
"Podemos ser lo mejor y tambien lo peor con la misma facilidad" Bersuit Vergarabat