Foro de elhacker.net

Programación => .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:

Código:
    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
  1. Dim sHora As String
  2. 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
Código:
hora1 = Format$(time, "HH:nn:ss")
Citar
Error   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
Código:
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
  1. if (DateTime.Compare(DateTime.Now,hora1) > -1)
  2.  
En VB.Net es algo así:
Código
  1. IF DateTime.Compare(DateTime.Now,hora1) > -1 Then
  2.  

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
Código:
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
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
  1. If hora1 = My.Computer.Clock.LocalTime.ToLongTimeString() Then
  2.                MsgBox(recorda1, MsgBoxStyle.Information, "Acordate!!")
  3. End If

Gracias chicos:D