Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Chuxxx en 20 Septiembre 2010, 02:05 AM

Título: [Solucionado] Alarma (No suena :S)
Publicado por: Chuxxx en 20 Septiembre 2010, 02:05 AM
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?
Título: Re: Alarma (No suena :S)
Publicado por: Shell Root en 20 Septiembre 2010, 02:27 AM
Formatea así a ver que os pasa,
Código (vbnet) [Seleccionar]

Dim sHora As String
sHora = format$(time, "HH:nn:ss")
Título: Re: Alarma (No suena :S)
Publicado por: raul338 en 20 Septiembre 2010, 02:33 AM
http://foro.elhacker.net/net/dudas_con_mi_agenda_c-t303095.0.html;msg1504435#msg1504435

:)
Título: Re: Alarma (No suena :S)
Publicado por: Chuxxx en 20 Septiembre 2010, 20:08 PM
hora1 = Format$(time, "HH:nn:ss")
CitarError   1   No se ha declarado el nombre 'time'.

Es VB2005.NET

No funka :(
Título: Re: Alarma (No suena :S)
Publicado por: [D4N93R] en 20 Septiembre 2010, 20:23 PM
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?
Título: Re: Alarma (No suena :S)
Publicado por: Chuxxx en 20 Septiembre 2010, 21:47 PM
hora1 es date
Public hora1 As Date
Ningun error, directamente no sale el MsgBox cuando la hora actual coincide con la variable
Título: Re: Alarma (No suena :S)
Publicado por: [D4N93R] en 20 Septiembre 2010, 23:48 PM
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!
Título: Re: Alarma (No suena :S)
Publicado por: Chuxxx en 22 Septiembre 2010, 01:21 AM
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
Título: Re: Alarma (No suena :S)
Publicado por: raul338 en 22 Septiembre 2010, 01:30 AM
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 (:
Título: Re: Alarma (No suena :S)
Publicado por: Chuxxx en 22 Septiembre 2010, 02:57 AM
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