Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: yeikos en 30 Agosto 2005, 14:43 pm



Título: Desplazar form
Publicado por: yeikos en 30 Agosto 2005, 14:43 pm
¿Cómo puedo desplazar un form lentamente? Como en el MSN messenger cuando alguien inicia sesión o recives un correo electrónico.


Título: Re: Desplazar form
Publicado por: sch3m4 en 30 Agosto 2005, 15:15 pm
usa un timer, y Form1.Move(). La velocidad con la que se despliega dependerá del intervalo del timer, y del incremento que le des al Form1.Move


Título: Re: Desplazar form
Publicado por: Slasher-K en 31 Agosto 2005, 04:34 am
Creas una etiqueta que se llame lblCaption, le pones "Mover" o algo similar y probá sosteniendo el mouse sobre ella y moviendolo para ver el efecto.

Código:
'
'Coded by Slasher
'
Option Explicit
Option Base 1  'Soy humano :)

Private snCoord(2) As Single

Private Sub lblCaption_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  On Error Resume Next
 
  snCoord(1) = X
  snCoord(2) = Y
End Sub

Private Sub lblCaption_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  On Error Resume Next
 
  If Button = 1 Then
    Call Me.Move((Left - snCoord(1)) + X, (Top - snCoord(2)) + Y)
  End If
End Sub

Saludos.


Título: Re: Desplazar form
Publicado por: yeikos en 31 Agosto 2005, 20:21 pm
Anhur este es el código que hice yo:

Citar
Private Sub Form_Load()
Form1.Move 10000, 11000
Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()

Dim i
For i = 11000 To 9500 Step -0.015
   Form1.Move 10000, i
Next i
Timer1.Enabled = False
End Sub


El problema que tengo es que al desplazarse la ventana digamos que se queda "pillada" y si esta contiene algun caption o lo que sea no se puede ver durante su trayectoria, solo se podra ver claramente cuando llegue a su destino.

El tuyo esta muy bien, pero me podrias ayudar a adaptarlo para que haga una función como el mio pero que no suceda el problema que te he comentado?


Título: Re: Desplazar form
Publicado por: yeikos en 6 Septiembre 2005, 00:01 am
¿Alguien podria ayudarme? Es que lo necesito, gracias por adelantado.


Título: Re: Desplazar form
Publicado por: Slasher-K en 6 Septiembre 2005, 01:40 am
Código:
Private Sub Form_Load()
  Call Form1.Move(10000, 11000)
  Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
     Static snPos!

  If snPos >= 9500 Then
    Timer1.Enabled = False
    Exit Sub
  End If

  Call Form1.Move(10000, snPos)

  snPos = snPos + 150
End Sub

Cada intervalo del Timer mueve un poco más el formulario (lo mueve 150 en este caso). Cambia los valores como te guste.

Saludos.


Título: Re: Desplazar form
Publicado por: Sancho.Mazorka en 1 Noviembre 2005, 21:42 pm
mira yo te lo hago mas rapido y de una toma ponelo asi

Código:
private sub timer1.timer()
form1.top = form.top - 30
en sub

despues coloca otro contador para que a la cantidad de tiempo detenga el timer1 y se detiene donde vos queres


Sancho Mazorka


Título: Re: Desplazar form
Publicado por: sch3m4 en 1 Noviembre 2005, 23:28 pm
eso ya se dijo

usa un timer, y Form1.Move(). La velocidad con la que se despliega dependerá del intervalo del timer, y del incremento que le des al Form1.Move


Título: Re: Desplazar form
Publicado por: NYlOn en 1 Noviembre 2005, 23:50 pm
Citar
El problema que tengo es que al desplazarse la ventana digamos que se queda "pillada" y si esta contiene algun caption o lo que sea no se puede ver durante su trayectoria, solo se podra ver claramente cuando llegue a su destino.

Intenta haciendo lo mismo con todos los controles, es decir
si pones Form1.Move, tmb ponne Label1.Move...
Capaz q eso lo soluciona


Título: Re: Desplazar form
Publicado por: sch3m4 en 2 Noviembre 2005, 16:57 pm
si lo que quieres es que se vea, cómo la ventana se va desplazando hasta su destino, dale intervalos más largos, y movimientos más cortos.


Título: Re: Desplazar form
Publicado por: jocker en 6 Junio 2006, 20:40 pm
este es el mio, no es tan dificil, justamente queria lo mismo, y en el menu de propieades ponele en "moveable" false, asi nadie lo puede mover

Private Sub Form_Load()
IH = Height
IW = Width
Move (Screen.Height - Height) + 3000, (Screen.Width - Width) + 1000
With Me
.Height = 3000
.Width = 3000
.BorderStyle = 5
.BackColor = vbBlack
.Caption = "kill you"

End With

Timer1.Interval = 100
Timer2.Interval = 3000
End Sub

Private Sub Form_Resize()

If Height <> IH Then
IH = Height
ElseIf Width <> IW Then
Width = IW
End If




End Sub

Private Sub Timer1_Timer()
Form1.Top = Form1.Top - 100
End Sub

Private Sub Timer2_Timer()
If Timer2.Interval = 3000 Then
Timer1.Enabled = False
End If
End Sub