Italian Circle ProgressBar Basata su Timer

Sagenut

Expert
Licensed User
Longtime User
Lasciamolo lavorare.
Ha già diverse info su cui studiare.
 

Schakalaka

Active Member
Licensed User
Longtime User
Grazie!
ho provato a lavorarci un po..
diciamo che ho fatto un passo in avanti...
 

Attachments

  • B4A Samples.zip
    124.4 KB · Views: 175

Sagenut

Expert
Licensed User
Longtime User
Prova a vedere questo.
E' il tuo progetto modificato.
 

Attachments

  • Circular Counter.zip
    9.8 KB · Views: 178

Sagenut

Expert
Licensed User
Longtime User
Andavo un pò di fretta.
Purtroppo non ho nemmeno commentato il codice.
Però credo che @Schakalaka con quel progetto sia in grado di adeguarlo con una variabile per il tempo e che riesca anche a fare da solo il countdown.
Altrimenti siamo quì per spiegazioni ed eventuale progetto modificato.

P.S.= esatto, dura 5 minuti perchè mi pare fosse la richiesta iniziale. Comunque mi scuso per il progetto davvero scarno.
 

LucaMs

Expert
Licensed User
Longtime User
Non devi affatto scusarti, sia perché non è scarno, sia perché nessuno ti paga per questo (non pagano nemmeno me, purtroppo ?:().

Ma non vedo dove siano impostati quei 5 minuti. Dovrò studiare meglio il sorgente.

Poi, va beh, non capisco cosa c'entri la data corrente (DateTime.Now) ed altro.
 

Sagenut

Expert
Licensed User
Longtime User
Sinceramente mi ero un pò perso nel cercare di seguire le modifiche che ha apportato alla Classe.
E infatti il Datetime.Now non serve ma poi non l'ho più corretto.
Ormai ho anche già modificato il progetto per il countdown.................ma voglio vedere lavorare @Schakalaka. ?
Già che ci sono modifico tutto anche per il tempo variabile.
 

Schakalaka

Active Member
Licensed User
Longtime User
Ciao, e grazie per l' aiuto e per l' esempio.

Stavo proprio cercando di fargli fare il countdown, mentre il senso del riempimento della barra, è giusto.
 

LucaMs

Expert
Licensed User
Longtime User
SE davvero vuoi lavorarci (???)

dovresti avere un punto in cui imposti un "tempo" - durata, e una variabile Boolean per dirgli se deve avanzare o "indietreggiare", ovvero eseguire un count-down.

Non è facilissimo.

Hai modificato anche qualcosa nella classe originale di Erel (a parte esporre la label, mi pare)?
 

Sagenut

Expert
Licensed User
Longtime User
Ma siete sicuri che il giro completo duri 5 minuti? Da dove lo vedete?
Nell'esempio brutto il Value della Circular aumenta di 0.3334 ogni secondo.
Quindi di 1 (circa) ogni 3 secondi.
Moltiplicato per 100 (per completare il giro) fanno 300 secondi, 5 minuti.
 

Schakalaka

Active Member
Licensed User
Longtime User
mi sembra di capire che è da modificare la sub ConvertTicksToTimeString della classe per invertire il contatore.
è da quella che aggiorna il nuovo valore alla label ? ? ? ? ?
 

Sagenut

Expert
Licensed User
Longtime User
La ConvertTicksToTimeString converte il tempo in millisecondi nella Label Minuti e Secondi.
Il lavoro lo faccio nel Main......nel Timer_Tick
 

LucaMs

Expert
Licensed User
Longtime User
Nell'esempio brutto il Value della Circular aumenta di 0.3334 ogni secondo.
Quindi di 1 (circa) ogni 3 secondi.
Moltiplicato per 100 (per completare il giro) fanno 300 secondi, 5 minuti.
Tra nervi (vedi...), sonno e fare troppe cose insieme... pur avendo notato quell'incremento di 0.3334... avevo sbagliato il calcolo.

E' sufficiente:

mDuration = 20 ' seconds
mBarIncrement = 1 / (mDuration / 100)

e sostituire quel 0.3334 con mBarIncrement.
 
Top