Hola a todos, he estado trabajando para convertir tus Forms en persianas :o, si, como oyes, en persianas. :)
Ahora SI funciona, os lo prometo, sino, os devuelvo el dinero... :xD
IMPORTANTE: DEBEIS PONER LA PROPIEDAD BORDERSTYLE EN NONE
Aqui va el code, (esto deberia estar en módulo):
' ////////////////////////////////////////////////////////////////
' // *Autor: *PsYkE1* (miguelin.majo@gmail.com) //
' // *Podeis agrandar o reducir el codigo, siempre y cuando se //
' // respete la autoria y se me comuniquen esos cambios. //
' // *Agradecimientos a BlackZeroX. //
' // *Visita http://foro.rthacker.net //
' ////////////////////////////////////////////////////////////////
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Sub Persiana(miForm As Form, Vel As Integer, Desplegar As Boolean, Alto As Boolean _
, Acabar As Boolean)
Dim Largo As Integer
With miForm
If Desplegar = True Then
If Alto = True Then
Largo = .Height
.Height = 0
While Not .Height >= Largo
.Height = .Height + 2
Sleep Vel
Wend
Else
Largo = .Width
.Width = 0
While Not .Width >= Largo
.Width = .Width + 2
Sleep Vel
Wend
End If
Else
If Alto = True Then
While Not .Height <= 10
.Height = .Height - 10
Sleep Vel
Wend
Else
While Not .Width <= 10
.Width = .Width - 2
Sleep Vel
Wend
End If
End If
End With
If Acabar = True Then End
End Sub
Bien, ahora para llamarlo desde un Form pondríamos esto:
Private Sub Form_Activate()
Call Persiana(Me, 5, False, True, True)
End Sub
( esta llamada se ejerceria sobre el Form actual, con una velocidad de 5(si quereis que vaya mas despacio aumentar el valor, no bajarlo ;)), para que se cierre la persiana, de abajo a arriba y que al completarse se finalice el programa)
Quizas alguien tenga alguna duda preguntar, que es gratis... ;)
Salu2! ;D
Se me cuelga el VB... No me funciona...! :(
mmmmmmm
q es exactamente lo que te pasa?¿ :huh:
recuerda que:
Cita de: *PsYkE1* en 10 Mayo 2010, 21:52 PM
IMPORTANTE: DEBEIS PONER LA PROPIEDAD BORDERSTYLE EN NONE
Seguramente lo que te pase es que se pliega, pero se queda asi, verdad¿?
Poniendo esto no deberias tener problemas...
Salu2! ;D
Si a mi tambien se me cuelta, puse el BorderStyle en None, Pero se cierra igual. Tengo Windows 7
mmmmmmmmm
comprendo, el caso es que a mi me funciona, bajaros el proyecto:
http://www.mediafire.com/?z12mynyjwgt (olvidadlo que tiene fallos, el code que esta posteado funciona bien)
A ver si asi... :-\
Salu2! ;D
Ya se lo que pasa...
A que lo habeis llamado asi:
Private Sub Form_Load()
Call Persiana(Me, 10, False, True, True)
End Sub
Si creais un boton y pones la llamada funciona!! ;D
Y si soy sincero no se porque, se os ocurre algo?¿ :huh:
Salu2! ;D
son muchas lineas... mejor pon un timer via api en un modulo y con Mod lo haces no crees? se reduciria mucho el peso...
ejemplo:
rem en un Form agregar:
rem 1 PictureBox
rem 1 CommandButton
rem 1 Timer
option explicit
Private Expandir As Boolean
Private AuxNum As Long
Private Const LimAlt As Long = 4095
Private Const Velocity As Byte = 5
Private Expand As Boolean
Private Sub Command1_Click()
With Timer1
.Enabled = True
.Interval = 1
End With
Expand = Not Expand
AuxNum = Velocity
End Sub
Private Sub Form_Load()
With Picture1
.Height = LimAlt
.Top = 0
.Left = 0
End With
With Command1
.Height = 256
.Caption = "Ejemplo por BlackZeroX."
.Width = 2500
.Top = 0
.Left = Picture1.Width + 500
End With
Me.Height = LimAlt + 1000
Me.Width = Command1.Width + Command1.Left + 800
End Sub
Private Sub Timer1_Timer()
On Error GoTo Termina
With Picture1
If Not Expand Then
.Height = .Height + AuxNum
If .Height >= LimAlt Then
.Height = LimAlt
GoTo Termina
End If
AuxNum = AuxNum + Velocity
Else
.Height = .Height + AuxNum
If .Height <= 1 Then
.Height = 1
GoTo Termina
End If
AuxNum = AuxNum - Velocity
End If
End With
Exit Sub
Termina:
Err.Clear
Timer1.Enabled = False
End Sub
Es solo un ejemplo se puede pasar a un Modulo De Clase pero por ahorita no cuento con mucho tiempo solo lo dejo asi.
Sangriento Infierno Lunar!¡.
Gracias BlackZeroX▓▓▒▒░░ !!! ;-)
Esta muy bien el tuyo!! ;D
x cierto:
Cita de: *PsYkE1* en 11 Mayo 2010, 00:58 AM
Si creais un boton y pones la llamada funciona!! ;D
Y si soy sincero no se porque, se os ocurre algo?¿ :huh:
Salu2! ;)
http://msdn.microsoft.com/en-us/library/ms632669%28VS.85%29.aspx
AnimateWindow() permite hacer lo mismo si no me equivoco :)
Gracias Karcrack!! ;D
voy a echarle un vistazo... ;)
Salu2! ;D
Mirar el code
Hice unos arreglos con la ayuda de raul388 y funciona a la perfeccion! :laugh:
Espero que ahora les guste! :rolleyes:
Salu2 ;)
:xD viste que se pudo (:huh:)
Nota, los que quieran ponerlo como animacion de entrada deben llamar al procedimiento en el evento activate del form, o sino en el Form_Load pero deben llamar a Me.Show antes ;-)
jaja.. Buena...! Me gusto...! :rolleyes:
Cita de: raul338 en 12 Mayo 2010, 18:39 PM
:xD viste que se pudo (:huh:)
Nota, los que quieran ponerlo como animacion de entrada deben llamar al procedimiento en el evento activate del form, o sino en el Form_Load pero deben llamar a Me.Show antes ;-)
si llaman a
load frm_Main donde frm_Main es el formulario la animacion no se viera xP (
Almenos que se compruebe si esta visible o no el form dentro del proceso aninacion respectivo).
el evento
form_load no creo que sirva si esta oculto xP.
y en
form_activate se va a activar cadavez que se active la ventana es mejor llamar al proceso de forma externa dentro de un
Sub main()Sangriento Infierno Lunar!¡.
Cita de: BlackZeroX▓▓▒▒░░ en 13 Mayo 2010, 04:00 AM
Cita de: raul338 en 12 Mayo 2010, 18:39 PM
:xD viste que se pudo (:huh:)
Nota, los que quieran ponerlo como animacion de entrada deben llamar al procedimiento en el evento activate del form, o sino en el Form_Load pero deben llamar a Me.Show antes ;-)
si llaman a load frm_Main donde frm_Main es el formulario la animacion no se viera xP (Almenos que se compruebe si esta visible o no el form dentro del proceso aninacion respectivo).
el evento form_load no creo que sirva si esta oculto xP.
y en form_activate se va a activar cadavez que se active la ventana es mejor llamar al proceso de forma externa dentro de un Sub main()
Sangriento Infierno Lunar!¡.
Exacto, el problema que tenia antes era que lo puse en
Form_Load, entonces se activaba antes de que se mostara el Form :laugh:, para ello, hay tres soluciones:
*La que puse en el post de poner Me.Show en
Form_Load.
*Otra seria ponerlo en
Form_Acivate.
*(Ya me di cuenta de eso, aunque voy a cambiarlo como me dices tu que es mas profesional :P)...
Salu2 y gracias!! ;)