Newsgroup: it.comp.lang.visual-basic
Titolo: [?]Come visualizzo il valore corrente di un timer

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).
Spero di essere stato chiaro!
Ciao
Brando

è 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


Non esiste modo di conoscere tempi intermedi nel conteggio di un timer.
Quindi non si puo' fare se Interval e' posto a 10000, ma potresti fare
cosi':
1) imposti Interval = 1000 (ogni secondo)
2) a livello di modulo dichiari una variabile Dim Counter As Long
3) nella routine Timer (ogni secondo, quindi) incrementi la variabile
Counter
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

etc...)
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


Il problema (una volta tanto) non e' VB, ma Windows.
Non ti spiego i dettagli, comunque sappi che hai azzeccato... e non ci si
puo' fare nulla :-(
--
Roal Zanazzi
z...@iol.it


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.


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

se volessi convertire i secondi con un Format ?
mica devo calcolarmi quante ore, minuti, secondi sono trascorsi ?
impostando Timer-TimerIniziale ottengo i secondi trascorsi.... ma volevo
convertire questi in formato Ora valido ?
bye

 Cesare Nicola
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