elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Iniciar un Form parpadeando
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Iniciar un Form parpadeando  (Leído 2,711 veces)
EddyW

Desconectado Desconectado

Mensajes: 187



Ver Perfil WWW
Iniciar un Form parpadeando
« en: 30 Enero 2010, 07:06 am »

Este post lo hice en otro foro, mas abajo se menciona para que..
Ignoren lo de "entrar al Lab"  ;D

El proposito de este post es mas el de ayudar a que los users aprendan algunas funciones utiles sobre todo las usadas para entrar al Lab:

Que se usa:
  • Un timer (Nombre: Timer1)
  • Case
  • IIF
  • If
  • Funciones
  • Sub's
  • Variables

Si no quedo claro,  :laugh: añaden un Timer, y copian el code y lo ejecutan y lo estudian  ;)
No creo que haga falta la explicacion pero si hay dudas pregunten:
Código:
Dim TiempoAtenuacion As Long

Private Sub Form_Load()
TiempoAtenuacion = 10
Timer1.Interval = 10
End Sub

Private Sub Timer1_Timer()
Select Case TiempoAtenuacion
    Case Is = 150
        Timer1.Interval = 0
        Timer1.Enabled = False
        Me.Show
    Case Else
        Call Atenuar
        Call SumarIntervalo
End Select
TiempoAtenuacion = Timer1.Interval
End Sub

Private Function Atenuar()
Dim Estado As String
Estado = IIf(Me.Visible, "Encendido", "Apagado")
If Estado = "Encendido" Then
    Me.Hide
ElseIf Estado = "Apagado" Then
    Me.Show
End If
End Function

Private Sub SumarIntervalo()
    Timer1.Interval = Timer1.Interval + 5
End Sub
Espero le sirva a alguien ;)

SaluDOS!!!


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Iniciar un Form parpadeando
« Respuesta #1 en: 30 Enero 2010, 07:59 am »

Usa geshi hermano:

code=vb

Edito:

Tu código se puede optimizar bastante deja lo recreo a mi manera ( Ya pongo aquí el código):

Temibles unas!¡
.


« Última modificación: 30 Enero 2010, 09:03 am por ░▒▓BlackZeroҖ▓▒░ » En línea

The Dark Shadow is my passion.
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Iniciar un Form parpadeando
« Respuesta #2 en: 30 Enero 2010, 09:02 am »

.
Se le debe pasar 2 parámetros, 1 es una instancia de un objeto Timer X cual sea no importa y el mas importante el handle de la pantalla a darle el dicho efecto.

Se puede usar un timer creado por vía api pero bueno para evitar broncas de códigos largos lo deje con un parámetro donde se pasa el timer.

Código
  1.  
  2. '
  3. ' ////////////////////////////////////////////////////////////////
  4. ' // Autor: BlackZeroX ( Ortega Avila Miguel Angel )            //
  5. ' // Inspirado en la idea principal de    3D1                   //
  6. ' //                                                            //
  7. ' // Web: http://InfrAngeluX.Sytes.Net/                         //
  8. ' //                                                            //
  9. ' // |-> Pueden Distribuir Este Codigo siempre y cuando         //
  10. ' // no se eliminen los creditos originales de este codigo      //
  11. ' // No importando que sea modificado/editado o engrandesido    //
  12. ' // o achicado, si es en base a este codigo es requerido       //
  13. ' // el agradacimiento al autor.                                //
  14. ' ////////////////////////////////////////////////////////////////
  15. ' //            Modulo de Clase "ClsAnimateWindows"             //
  16. ' ////////////////////////////////////////////////////////////////
  17. '
  18. Option Explicit
  19.  
  20. Private WithEvents tmr          As Timer
  21. Const SW_SHOWNORMAL = 1
  22. Const SW_HIDE = 0
  23. Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
  24. Private Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Long
  25. Dim vHwnd                       As Long
  26.  
  27. Public Property Let Timer(vData As Timer)
  28.    Set tmr = vData
  29.    tmr.Enabled = False
  30. End Property
  31. Public Property Get Timer() As Timer
  32.    Set Timer = tmr
  33. End Property
  34. Public Property Let hWnd(vData As Long)
  35.    vHwnd = vData
  36. End Property
  37. Public Property Get hWnd() As Long
  38.    hWnd = vHwnd
  39. End Property
  40. Public Function Start() As Boolean
  41.    Start = Not tmr Is Nothing
  42.    If Start Then
  43.        tmr.Interval = 10
  44.        tmr.Enabled = True
  45.    End If
  46. End Function
  47.  
  48. Private Sub TMR_Timer()
  49. Static CounTim                  As Integer
  50. Dim Res                         As Long
  51.    If CounTim >= 170 Then
  52.        CounTim = 0
  53.        Res = ShowWindow(vHwnd, SW_SHOWNORMAL)
  54.        tmr.Enabled = False
  55.    Else
  56.        Res = ShowWindow(vHwnd, Abs(Not CBool(IsWindowVisible(vHwnd))))
  57.        tmr.Interval = tmr.Interval + 10
  58.        CounTim = tmr.Interval
  59.    End If
  60. End Sub
  61.  
  62. Private Sub Class_Terminate()
  63.    Set tmr = Nothing
  64. End Sub
  65.  
  66.  

Ejemplo de su uso:

Código
  1.  
  2. '
  3. ' ////////////////////////////////////////////////////////////////
  4. ' // Autor: BlackZeroX ( Ortega Avila Miguel Angel )            //
  5. ' //                                                            //
  6. ' // Web: http://InfrAngeluX.Sytes.Net/                         //
  7. ' //                                                            //
  8. ' // |-> Pueden Distribuir Este Codigo siempre y cuando         //
  9. ' // no se eliminen los creditos originales de este codigo      //
  10. ' // No importando que sea modificado/editado o engrandesido    //
  11. ' // o achicado, si es en base a este codigo es requerido       //
  12. ' // el agradacimiento al autor.                                //
  13. ' ////////////////////////////////////////////////////////////////
  14. ' //       Ejemplo: Modulo de Clase "ClsAnimateWindows"         //
  15. ' //        Se nesesita:                                        //
  16. ' //                * 1 Timer                                   //
  17. ' ////////////////////////////////////////////////////////////////
  18.  
  19. Option Explicit
  20.  
  21. Dim AnimatW As ClsAnimateWindows
  22.  
  23. Private Sub Form_Load()
  24.    Set AnimatW = New ClsAnimateWindows
  25.    With AnimatW
  26.        .hWnd = Me.hWnd
  27.        .Timer = Timer1
  28.        .Start
  29.    End With
  30. End Sub
  31.  
  32. Private Sub Form_Unload(Cancel As Integer)
  33.    Set AnimatW = Nothing
  34. End Sub
  35.  
  36.  

El código al pesarla el handle de la ventana puede hacer "intermitente" cualquier ventana de windows... solo sabiendo el hwnd de dicha ventanilla xP.

aqui un ejemplo hacia un control del mismo formulario:

Código
  1.  
  2. '
  3. ' ////////////////////////////////////////////////////////////////
  4. ' // Autor: BlackZeroX ( Ortega Avila Miguel Angel )            //
  5. ' //                                                            //
  6. ' // Web: http://InfrAngeluX.Sytes.Net/                         //
  7. ' //                                                            //
  8. ' // |-> Pueden Distribuir Este Codigo siempre y cuando         //
  9. ' // no se eliminen los creditos originales de este codigo      //
  10. ' // No importando que sea modificado/editado o engrandesido    //
  11. ' // o achicado, si es en base a este codigo es requerido       //
  12. ' // el agradacimiento al autor.                                //
  13. ' ////////////////////////////////////////////////////////////////
  14. ' //       Ejemplo: Modulo de Clase "ClsAnimateWindows"         //
  15. ' //        Se nesesita:                                        //
  16. ' //                * 1 Timer                                   //
  17. ' //                * 1 PictureBox                              //
  18. ' ////////////////////////////////////////////////////////////////
  19.  
  20. Option Explicit
  21.  
  22. Dim AnimatW As ClsAnimateWindows
  23.  
  24. Private Sub Form_Load()
  25.    Set AnimatW = New ClsAnimateWindows
  26.    With AnimatW
  27.        .hWnd = Picture1.hWnd
  28.        .Timer = Timer1
  29.        .Start
  30.    End With
  31. End Sub
  32.  
  33. Private Sub Form_Unload(Cancel As Integer)
  34.    Set AnimatW = Nothing
  35. End Sub
  36.  
  37.  

Temibles Lunas!¡
« Última modificación: 31 Enero 2010, 03:16 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Iniciar un Form parpadeando
« Respuesta #3 en: 30 Enero 2010, 17:01 pm »

esto lo unico que hace es ocultar y mostrar la ventana  :o
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Iniciar un Form parpadeando
« Respuesta #4 en: 30 Enero 2010, 18:52 pm »

esto lo unico que hace es ocultar y mostrar la ventana  :o

Da igual se ve bonito jajaja

Temibles Lunas!¡.
.
En línea

The Dark Shadow is my passion.
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Iniciar un Form parpadeando
« Respuesta #5 en: 31 Enero 2010, 03:07 am »

.
La ultima actualizacion y ya me voy ya lo deje optimizado.

Código
  1.  
  2. '
  3. ' ////////////////////////////////////////////////////////////////
  4. ' // Autor: BlackZeroX ( Ortega Avila Miguel Angel )            //
  5. ' // Inspirado en la idea principal de    3D1                   //
  6. ' //                                                            //
  7. ' // Web: http://InfrAngeluX.Sytes.Net/                         //
  8. ' //                                                            //
  9. ' // |-> Pueden Distribuir Este Codigo siempre y cuando         //
  10. ' // no se eliminen los creditos originales de este codigo      //
  11. ' // No importando que sea modificado/editado o engrandesido    //
  12. ' // o achicado, si es en base a este codigo es requerido       //
  13. ' // el agradacimiento al autor.                                //
  14. ' ////////////////////////////////////////////////////////////////
  15. ' //            Modulo de Clase "ClsAnimateWindows"             //
  16. ' ////////////////////////////////////////////////////////////////
  17. '
  18. Option Explicit
  19.  
  20. Private WithEvents tmr          As Timer
  21. Const SW_SHOWNORMAL = 1
  22. Const SW_HIDE = 0
  23. Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
  24. Private Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Long
  25. Dim vHwnd                       As Long
  26.  
  27. Public Property Let Timer(vData As Timer)
  28.    Set tmr = vData
  29.    tmr.Enabled = False
  30. End Property
  31. Public Property Get Timer() As Timer
  32.    Set Timer = tmr
  33. End Property
  34. Public Property Let hWnd(vData As Long)
  35.    vHwnd = vData
  36. End Property
  37. Public Property Get hWnd() As Long
  38.    hWnd = vHwnd
  39. End Property
  40. Public Function Start() As Boolean
  41.    Start = Not tmr Is Nothing
  42.    If Start Then
  43.        tmr.Interval = 10
  44.        tmr.Enabled = True
  45.    End If
  46. End Function
  47.  
  48. Private Sub TMR_Timer()
  49.    tmr.Enabled = Not tmr.Interval >= 170
  50.    If tmr.Enabled Then
  51.        ShowWindow vHwnd, Abs(Not CBool(IsWindowVisible(vHwnd)))
  52.        tmr.Interval = tmr.Interval + 10
  53.    Else
  54.        ShowWindow vHwnd, SW_SHOWNORMAL
  55.    End If
  56. End Sub
  57.  
  58. Private Sub Class_Terminate()
  59.    Set tmr = Nothing
  60. End Sub
  61.  
  62.  
« Última modificación: 31 Enero 2010, 03:21 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
EddyW

Desconectado Desconectado

Mensajes: 187



Ver Perfil WWW
Re: Iniciar un Form parpadeando
« Respuesta #6 en: 3 Febrero 2010, 03:29 am »

Usa geshi hermano:

code=vb

Edito:

Tu código se puede optimizar bastante deja lo recreo a mi manera ( Ya pongo aquí el código):

Temibles unas!¡
.
No use geshi por que el algunos codes cuando contenía Tabulaciones salían como "&noseque" pero intentare en la próxima ;)

Ya se que se puede optimizar!!!   :xD
Por que no leen todo el post  :-(

Ahí puse el propósito del cual hice ese post, era para unas practicas para entrar al "VBLab 1" (De otro foro) el mas sencillo :)
Yo prefiero hacer algo simple como esto sin API's, ahorro muchas mas lineas  :xD
Aquí mi propio code optimizado:
Código
  1. Private Sub Form_Load()
  2.    Timer1.Interval = 1
  3. End Sub
  4.  
  5. Private Sub Timer1_Timer()
  6. Me.Visible = Switch(Timer1.Interval >= 200, True, Timer1.Interval <> 200, IIf(Me.Visible, False, True))
  7. Timer1.Interval = Switch(Timer1.Interval < 200, Timer1.Interval + 10, True, 0)
  8. End Sub
Colocas un Timer (Timer1) y Copy And Paste ;)
Este debería ser el mismo ejercicio pero para el Lab 3  :xD

SaluDOS!!!
En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Iniciar un Form parpadeando
« Respuesta #7 en: 3 Febrero 2010, 04:12 am »

Si es por elegir... Me quedo con el mio! xD

Código:
Private Sub Form_Load()
    Call Timer1_Timer
End Sub
 
Private Sub Timer1_Timer()
    Timer1.Interval = (Timer1.Interval + 10) Mod 200
    Me.Visible = Not Me.Visible Or Timer1.Interval = 0
End Sub
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
EddyW

Desconectado Desconectado

Mensajes: 187



Ver Perfil WWW
Re: Iniciar un Form parpadeando
« Respuesta #8 en: 3 Febrero 2010, 04:42 am »

Si es por elegir... Me quedo con el mio! xD

Código:
Private Sub Form_Load()
    Call Timer1_Timer
End Sub
 
Private Sub Timer1_Timer()
    Timer1.Interval = (Timer1.Interval + 10) Mod 200
    Me.Visible = Not Me.Visible Or Timer1.Interval = 0
End Sub
Eso es trampa ¬¬
XD, ok pensé en usar "Mod" pero nah, nadie usa Switch ni IIf ;D

SaluDOS!!!
PD: Lo haré en una sola linea... xD
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Mi form se cuelga al iniciar un thread...
.NET (C#, VB.NET, ASP)
Eleкtro 5 4,353 Último mensaje 30 Noviembre 2012, 07:00 am
por spiritdead
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines