mover un objeto alrededor de un form

Iniciado por koopa2, 20 Julio 2006, 22:00 PM

0 Miembros y 2 Visitantes están viendo este tema.

koopa2

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

Robokop

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

koopa2

pero ahi me estas poninedo que me muestre las posiciones de un mouse , y yo quiero otra cosa
saludos

koopa2

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

Robokop

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.

-POLACO-

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