Desplazar form

Iniciado por yeikos, 30 Agosto 2005, 14:43 PM

0 Miembros y 1 Visitante están viendo este tema.

yeikos

¿Cómo puedo desplazar un form lentamente? Como en el MSN messenger cuando alguien inicia sesión o recives un correo electrónico.

sch3m4

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
SafetyBits

"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..

Slasher-K

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.


'
'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.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

yeikos

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?

yeikos

¿Alguien podria ayudarme? Es que lo necesito, gracias por adelantado.

Slasher-K


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.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

Sancho.Mazorka

mira yo te lo hago mas rapido y de una toma ponelo asi

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
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



sch3m4

eso ya se dijo

Cita de: Lympex 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
SafetyBits

"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..

NYlOn

CitarEl 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

sch3m4

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.
SafetyBits

"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(..