Newsgroup: it.comp.lang.visual-basic
Titolo: Controllo timer

Ciao a tutti
dove posso reperire un controllo timer che abbia un tempo max di settaggio
molto alto ?  ( max 1 giorno - 24 ore )
Grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio
news:am9r5n$fgu$1...@news.newsland.it...

Non è un vero e proprio timer ma ci assomiglia moltissimo
ti permette di scatenare un evento a una determinata ora del giorno
basandosi sull'orologio di sistema.
E' un OCX free basta registrasi
www.toptown.com/nowhere/jinhui
JKLJKL

 molto alto ?  ( max 1 giorno - 24 ore )
Non basta usare Interval da 1 a 32767 e fare un po' di proporzioni?

 ha scritto


Scusa ... non capisco...


 molto alto ?  ( max 1 giorno - 24 ore )
Due opportunita' con il timer, a seconda di cio' che devi fare:
1)
Imposti il timer ad un tempo alto (nell'esempio 10000) e nel codice
dell'evento Timer gestisci gli incrementi, come segue:
Private Sub Timer1_Timer()
   Static tTime As Long
   tTime = tTime + 10
   '17:30 = 17*3600 + 30*60 secondi
   If tTime >= 63000 Then
      tTime = 0
      'Esegui procedura
   End If
End Sub
2)
Imposti il timer ad un tempo alto (anche 30000) e sfrutti l'ora di
sistema. Il booleano serve ad evitare che la procedura venga eseguita
piu' volte nello stesso minuto.
Puoi anche aumentare la precisione del timer (tempo basso) e fare una
verifica sui secondi, anche se cio' e' ovviamente e' piu' oneroso.
Private Sub Timer1_Timer()
   Static bDone As Boolean
   If Hour(Time) = 17 And Minute(Time) = 30 And Not bDone Then
      bDone = True
      'Esegui procedura
   Else
      bDone = False
   End If
End Sub
hth
Lokar
--
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs/Manifesto.txt

 Scusa ... non capisco...
Ecco la mia versione, fra le 8000 pubblicate nel frattempo:
'Creare una form con un ListBox (List1) piuttosto largo
'una label (Label1), un CommandButton (Command1)
'e un Timer (Timer1)
'Incollare quanto segue:
Dim numero_attivazioni_per_unita_tempo As Integer
Dim numero_attivazioni As Integer   'Attivazioni del Timer
Dim unita_tempo As Integer  'Unita' di tempon trascorse
Private Sub Command1_Click()
    If Timer1.Enabled Then
        Timer1.Enabled = 0
        Unload Me
    Else
        List1.Clear
        numero_attivazioni = 0
        unita_tempo = 0
        Command1.Caption = "Chiudi"
        Timer1.Enabled = 1
    End If
End Sub
Private Sub Form_Load()
    Timer1.Enabled = 0
    Me.Caption = "Lupo scodinzola"
    Do
        Do
            Beep
            comodo = InputBox("Numero dei secondi per singolo intervallo
(Max 32):")
            If Val(comodo) = 0 Then
                Unload Me
                Exit Sub
            End If
            If Val(comodo) < 33 Then
                intervallo = Val(comodo)
                Exit Do
            End If
            MsgBox "Ho detto max 32!"
        Loop
        Beep
        comodo = InputBox("Numero degli intervalli per unità di tempo:")
        If Val(comodo) = 0 Then
            Unload Me
            Exit Sub
        End If
        numero_attivazioni_per_unita_tempo = Val(comodo)
        If MsgBox("Secondi per unità di tempo= " & intervallo *
numero_attivazioni_per_unita_tempo & vbCrLf & "Confermi?", vbYesNo +
vbQuestion) = vbYes Then Exit Do
    Loop
    Timer1.Interval = intervallo * 1000
    Command1.Caption = "Attiva il temporizzatore"
    Label1.Caption = ""
End Sub
Private Sub Form_Unload(Cancel As Integer)
    Timer1.Enabled = 0
    MsgBox "Ciao da Lupo"
End Sub
Private Sub Timer1_Timer()
    Beep
    numero_attivazioni = numero_attivazioni + 1
    Label1.Caption = "Timer1 attivato " & numero_attivazioni & " volte"
    If numero_attivazioni >= numero_attivazioni_per_unita_tempo Then
        numero_attivazioni = 0
        unita_tempo = unita_tempo + 1
        secondi_totali = Timer1.Interval / 1000 *
numero_attivazioni_per_unita_tempo * unita_tempo
        ore = Fix(secondi_totali / 3600)
        minuti = Fix((secondi_totali - (ore * 3600)) / 60)
        secondi = secondi_totali - (ore * 3600) - (minuti * 60)
        List1.AddItem "Trascorse " & unita_tempo & " unità di tempo da " &
Timer1.Interval / 1000 * numero_attivazioni_per_unita_tempo & " Sec. Tot: "
& secondi_totali & " Sec. (" & ore & " Ore " & minuti & " Min " & secondi &
" Sec)"
        List1.ListIndex = List1.NewIndex
    End If
End Sub