DelayedForm

Un formulario de "alerta" que espera el tiempo indicado o hasta que se pulse en el botón

 

Revisión del 26/Dic/2001



Pues eso... en una consulta de los news, alguien preguntaba si se podía hacer que se mostrara un formulario con aviso y un botón para cerrarlo, pero que si transcurrido un tiempo no se pulsaba en dicho botón, se cerrara.

Y aquí está... aunque después de tres años... ya que fue en Agosto del 98 cuando respondí a esa pregunta.

La cosa no es complicada, como podrás comprobar, pero, puede que a alguno le pueda resultar interesante.

Aquí tienes el código del formulario que espera y del de prueba.
Más abajo está el link al fichero ZIP con el código completo.

Nos vemos.
Guillermo


El código:


'------------------------------------------------------------------------------
' Delayed Form                                                      (25/Ago/98)
'
' Se mostrará este formulario hasta que se pulse en el botón o
' transcurra el tiempo especificado.
'
' El mensaje a mostrar y el tiempo de espera, se indicarán por medio de las
' propiedades: Message y Delay respectivamente.
'
' Para usarla:
'        With fDelay
'            .Delay = 4000 ' Tiempo de espera en milisegundos
'            .Message = "Mensaje a mostrar"
'            .Show vbModal, Me
'        End With
'
' Revisión del 30/Nov/2000: Nuevas propiedades para el tipo de fuente
'
' ©Guillermo 'guille' Som, 1998-2001
'------------------------------------------------------------------------------
Option Explicit

Public Property Get Delay() As Long
    Delay = Timer1.Interval
End Property

Public Property Let Delay(ByVal NewDelay As Long)
    On Error Resume Next
    '
    Timer1.Enabled = False
    Timer1.Interval = NewDelay
    If Err Then
        Err = 0
        Timer1.Interval = 10000
    End If
    Timer1.Enabled = True
End Property

Public Property Get Message() As String
    Message = Label1.Caption
End Property

Public Property Let Message(ByVal sNewMsg As String)
    With Label1
        .Caption = sNewMsg
        .Refresh
    End With
End Property
Private Sub Command1_Click()
    Timer1.Enabled = False
    Unload Me
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Set fDelay = Nothing
End Sub

Private Sub Timer1_Timer()
    Timer1.Enabled = False
    Unload Me
End Sub

Public Property Get msgFontSize() As Long
    msgFontSize = Label1.FontSize
End Property

Public Property Let msgFontSize(ByVal NewValue As Long)
    On Error Resume Next
    '
    Label1.FontSize = NewValue
    '
    Err = 0
End Property

Public Property Get msgFontBold() As Boolean
    msgFontBold = Label1.FontBold
End Property

Public Property Let msgFontBold(ByVal NewValue As Boolean)
    Label1.FontBold = NewValue
End Property

Public Property Get msgFontName() As String
    msgFontName = Label1.FontName
End Property

Public Property Let msgFontName(ByVal NewValue As String)
    On Error Resume Next
    '
    Label1.FontName = NewValue
    '
    Err = 0
End Property

Este es el link al código completo: Delayed.zip 3.11KB


ir al índice