Drata Interval

lunedì 08 dicembre 2008 - 19.15

172690 Profilo | Junior Member

Salve a tutti!
E' possibile far durare Interval (in Timer) più di 1 minuto?
Grazie a tutti!

aiedail92 Profilo | Expert

Certo che sì, basta fare le opportune conversioni da millisecondi a minuti:

//1 minuto tuoTimer.Interval = 60000; //m minuti tuoTimer.Interval = 60000 * m;

Luca

172690 Profilo | Junior Member

Non mi funziona...
Il massimo intervallo è 1 minuto... non mi funziona la procedure

Private Sub InitializeTimer()

Dim minuti As Integer
minuti = 5
mioTimer1.Interval = 60000 * minuti

mioTimer1.Enabled = True
End Sub

Fa quello che ci viene scritto in COMPORTAMENTO:
Interval 60000
Enabled True

Come posso rimediare, per fare un timer di 5 minuti?!
GRAZIE DI NUOVO!

aiedail92 Profilo | Expert

Se proprio non ti funziona (ma mi sembra strano perchè ho appena fatto la prova sia con il componente in System.Timers che quello in System.Windows.Forms), puoi sempre eseguire un timer da 1 minuto ed aspettare che scatti per cinque volte, usando una variabile di tipo int (o short o byte se preferisci) per tendere il conteggio.

Luca

172690 Profilo | Junior Member

Niente da fare...
Non mi fa la procedura InitializeTimer, ma quello che è scritto nella "finestra" COMPORTAMENTO che è in basso a destra (la mia destra).
Cosa sbaglio?!
Le "Imports"?
Le ho provate entrambe, quelle che mi segnali tu nella mail precedente ma il fa "come gli pare" :-)
Ancora GRAZIE!

aiedail92 Profilo | Expert

Forse ho capito... Da qualche parte nel codice richiami la tua funzione InitializeTimer? Se sì, dove?

Luca

172690 Profilo | Junior Member

No, non la richiamo...
La utilizzavo per inizializzare Interval e Enabled....
N.B. E' la PRIMA VOLTA che utilizzo un Timer!!!
Sto facendo delle prove per poi poterlo mettere/utilizzarlo in un progetto più grande...
Ti metto il codice

Imports System.Timers.Timer


Public Class Form1
Private Sub InitializeTimer()

Dim minuti As Integer
minuti = 5

'mioTimer1.Interval = 60000 * minuti
mioTimer1.Interval = 100000 * minuti

mioTimer1.Enabled = True
End Sub

Private Sub Timer1_Tick(ByVal Sender As Object, ByVal e As EventArgs) Handles mioTimer1.Tick
'Dim ora As Date
'ora = Now
'ora = ora.ToShortTimeString
'If (ora = "15.00") Then
Dim intRisultato As DialogResult
intRisultato = MessageBox.Show("Deve prendere le medicine", "PROVA", MessageBoxButtons.YesNo, MessageBoxIcon.Stop)
Select Case intRisultato
Case Windows.Forms.DialogResult.Yes
'Timer1.Enabled = False 'Una volta premuto NON RIPARTE PIU'
'Dim Cont As Integer
'Cont = Timer1.Interval
'MessageBox.Show(Cont) 'Visualizza 5000 ==> la procedura precedente NON VA!
MessageBox.Show("Scrivo sulla base di dati") 'poi però rifaccio il
'controllo!
Case Windows.Forms.DialogResult.No
mioTimer1.Enabled = True 'Una volta premuto, CHIUDE LA FINESTA E
'RIPARTE IL CONTEGGIO
End Select
'Else
'MessageBox.Show("None è ora!")
'End If
End Sub

End Class

Grazie!!!

aiedail92 Profilo | Expert

Allora il problema è quello... Se non chiami la funzione questa non viene eseguita in automatico, quindi devi prima chiamarla da qualche parte nella tua Form (ad esempio nel costruttore) in modo che imposti le proprietà del Timer. In alternativa puoi modificare direttamente le proprietà del Timer dalla finestra delle proprietà impostando Interval su 300000 (che sono 5 minuti)

Luca

172690 Profilo | Junior Member

Ho capito...
Ho provato entrambe le cose e funzionano!
TI RINGRAZIO!!!
Buona serata!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5