• Welcome to Test Foro de elhacker.net SMF 2.1.
 

[Solucionado] Alarma (No suena :S)

Started by Chuxxx, 20 September 2010, 02:05 AM

0 Members and 1 Guest are viewing this topic.

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,
Code (vbnet) Select

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")
QuoteError   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:
Code (csharp) Select

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

En VB.Net es algo así:
Code (vbnet) Select

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

Quote from: Chuxxx on 22 September 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

Code (vb) Select
If hora1 = My.Computer.Clock.LocalTime.ToLongTimeString() Then
                MsgBox(recorda1, MsgBoxStyle.Information, "Acordate!!")
End If


Gracias chicos:D