Grazie
Cesare Nicola
Ciao!
Non credo che sia possibile fare quello che chiedi con un solo timer:
infatti l'evento timer viene generato una volta ogni tot secondi, e
quindi non c'e' modo di sapere da quanto tempo e' stato generato
l'ultimo (o tra quanto verra' generato il prossimo) senza ricorrere ad
un secondo timer (con interval=1000, ad esempio) da far partire insieme
al primo: ad ogni evento timer del timer piu' veloce (1 sec.) aggiorni
la tua label, e la riazzeri quando viene generato l'altro evento timer
(quello con interval=10000).
Spero di essere stato chiaro!
Ciao
Brando
Cesare Nicola wrote in message <7h4vfm$7b6$1...@nslave1.tin.it>...
>Come posso fare per appoggiare il valore corrente di un timer ad una
>variabile? In altre parole, se un timer con Interval = 10000 (10 secondi)
>sta contando ed è arrivato a 6 secondi, io vorrei vedere nella variabile 6
o
>6000 ( oppure 4 o 4000, visto che sono passati 4 secondi da quando ha
>iniziato a contare).
>
>Grazie
>Cesare Nicola
>
>
>Ciao!
>Non credo che sia possibile fare quello che chiedi con un solo timer:
>infatti l'evento timer viene generato una volta ogni tot secondi, e
>quindi non c'e' modo di sapere da quanto tempo e' stato generato
>l'ultimo (o tra quanto verra' generato il prossimo) senza ricorrere ad
>un secondo timer (con interval=1000, ad esempio) da far partire insieme
>al primo: ad ogni evento timer del timer piu' veloce (1 sec.) aggiorni
>la tua label, e la riazzeri quando viene generato l'altro evento timer
>(quello con interval=10000).
L'avevo già provato, ma non so perchè, il timer "più lungo" arriva prima di
quello più corto. Mi spiego meglio: un timer con interval 30000, finisce il
conteggio quando quello con interval 1000 è arrivato a 28 eventi anzichè 30,
sebbene li faccio partire contemporaneamente. Può darsi che stia sbagliando
qualcosa, verificherò meglio.
>Marco Bonati ha scritto
>Perchè non utilizzi solo un timer impostato a 1000 e rilevi se una
variabile
>è uguale a 10 per lanciare un evento?
Grazie, proverò anche questa.
P.S.: non è che i timer di VB non sono poi così precisi e quindi, col
passare dei secondi, "l'imprecisione" si accumula fino a raggiungere
differenze rilevanti?
Ciao
Cesare Nicola
A questo punto, durante i 10 secondi, hai un contatore che conta i secondi
trascorsi.
Chiaramente nella routine Timer devi anche controllare quando Counter
raggiunge il valore 10 (secondi), e agire di conseguenza (stoppare il timer,
etc...)
--
Roal Zanazzi
z...@iol.it
Tutto OK, funziona. Penso però che i timer di VB siano una schifezza.
Controllando con un cronometro, quando il timer ha raggiunto 30 interventi,
quindi 30 secondi, il cronometro segna 34 secondi!!
Ciao
Cesare Nicola
--
Roal Zanazzi
z...@iol.it
>Tutto OK, funziona. Penso però che i timer di VB siano una schifezza.
>Controllando con un cronometro, quando il timer ha raggiunto 30
interventi,
>quindi 30 secondi, il cronometro segna 34 secondi!!
>
>Ciao
>Cesare Nicola
>
Esatto, sono una schifezza e non sono precisi, perchè in realtà l'intervallo
minimo è 55 millisecondi, o giù di li, e questa è la rosuluzione minima,
cioè l'intervallo deve essere multiplo di 55. Se fosse 55, il timer settato
a 1000 si ferma a 1045, questo vuol dire che sbaglia di 4.5 secondi ogni
100.....
...o almeno credo, attendo conferme
Cerca un timer preciso, ce ne sono in giro, credo anche sul sito comune.
Non solo, ma l'evento Timer viene notificato dal sistema operativo tramite
messaggio WM_TIMER, che ha una priorita' scarsa... quindi tra l'effettivo
"tick" del timer e la ricezione del messaggio puo' passare qualche
millisecondo (dipende dal carico del sistema in quel momento), andando cosi'
ad aumentare l'errore.
>Cerca un timer preciso, ce ne sono in giro, credo anche sul sito comune.
>
Sul Sito Comune c'e' MMTimer, un OCX _con sorgenti VB_ che implementa un
timer preciso fino a 1ms, utilizzando i timers multimediali di Windows (non
quelli standard, usati dal controllo timer di VB).
Attenzione, pero' che i timers multimediali richiedono piu' risorse, e se
troppo sfruttati rischiano di rallentare il sistema.
Se lo usi e ti da problemi, puoi chiedere chiarimenti all'autore ;-)
--
Roal Zanazzi
z...@iol.it
impostando Timer-TimerIniziale ottengo i secondi trascorsi.... ma volevo
convertire questi in formato Ora valido ?
bye
Io ho usato molto il controllo timer, e ho capito solo che il valore impostato
su
.interval significa "non accendere l'evento prima di", come dire che impostare
l'intervallo
a 500 msec, equivale alla certezza di eseguire il codice nell'evento timer con
frequenza
non superiore a 500 msec.
Bye
--
Bepi
mailto:be...@mwire.net