[Solucionado] Alarma (No suena :S)

Iniciado por Chuxxx, 20 Septiembre 2010, 02:05 AM

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

Chuxxx

Hola gente, estoy haciendo un programita de alarma en VB.NET2005
Tengo un Timer (Que hasta le puse el interval a 1) y este codigo:

   Private Sub tmVerificarTiempo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmVerificarTiempo.Tick
       If hora1 = Date.Now Then
           MsgBox(recorda1, MsgBoxStyle.Information, "Acordate!!")
       End If
   End Sub

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       hora1 = #3:23:00 PM#
   End Sub


Y la alarma nunca suena :S
no entiendo el error:S alguien que me ayude?

Shell Root

Formatea así a ver que os pasa,
Código (vbnet) [Seleccionar]

Dim sHora As String
sHora = format$(time, "HH:nn:ss")
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

raul338


Chuxxx

hora1 = Format$(time, "HH:nn:ss")
CitarError   1   No se ha declarado el nombre 'time'.

Es VB2005.NET

No funka :(

[D4N93R]

Qué tipo de datos es Hora1? es datetime? String? que error te da? de conversión? Necesitas siempre aclarar esos puntos :)

PD: Dices que no suena, será que no sale el textbox? o que cuando sale el textbox no suena?

Chuxxx

hora1 es date
Public hora1 As Date
Ningun error, directamente no sale el MsgBox cuando la hora actual coincide con la variable

[D4N93R]

Pues posiblemente está comparando la parte Miliseconds de datetime, por lo que es difícil que coincidan y entre en ese bloque. 

Prueba así, que esto no falla:
Código (csharp) [Seleccionar]

if (DateTime.Compare(DateTime.Now,hora1) > -1)

En VB.Net es algo así:
Código (vbnet) [Seleccionar]

IF DateTime.Compare(DateTime.Now,hora1) > -1 Then


El compare te regresa lo siguiente, tomando como referecia A el primer parámetro y B como el segundo.

-1 si A es menor que B
0 Si A es igual a B
1 Si A es mayor que B

Saludos!

Chuxxx

Private Sub tmVerificarTiempo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmVerificarTiempo.Tick
        IF DateTime.Compare(DateTime.Now,hora1) > -1 Then
            MsgBox(recorda1, MsgBoxStyle.Information, "Acordate!!")
        End If
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        hora1 = #1:16:00 PM#
    End Sub


Eso tengo, y salta el cartel aunque la hora no coincida... :S

PD: Como haces qe el codigo tenga colores?:P

raul338

Cita de: Chuxxx en 22 Septiembre 2010, 01:21 AM
PD: Como haces qe el codigo tenga colores?:P

[code=vb][/code]

Usa TimeSpan y con un timer lo vas restando un segundo, hasta que llegue a 0 y avisas (:

Chuxxx

Viendo en un ejemplo lo solucione
Para futuros users qe tengan el mismo problema

Código (vb) [Seleccionar]
If hora1 = My.Computer.Clock.LocalTime.ToLongTimeString() Then
                MsgBox(recorda1, MsgBoxStyle.Information, "Acordate!!")
End If


Gracias chicos:D