PDA

View Full Version : [VB6] Progress bar che non refresha


Spike79
14-05-2009, 12:54
Ciao, ho un programma in VB6 che fai dei caricamenti su DB abbastanza lunghi, ho quindi messo una progress bar per monitorarli, e fin qui, tutto ok...il problema è che dopo un pò che 'scrolla', è come se smettesse di fare il repaint, ho chiamato il refresh del form che la contiene , ma non c'è niente da fare...smette di 'progredire' e stop, anche se il caricamento va fino alla fine....cosa sbaglio ?

Grazie!

wingman87
14-05-2009, 12:59
Puoi postare il codice incriminato?

Spike79
14-05-2009, 13:05
Puoi postare il codice incriminato?

Tutto il codice no, è impossibile, sono una serie (lunga) di calcoli, query sul db (via adodb), ecc...poi il classico miaPb.value = miaPb.value + 1 (visto che ho calcolato il pb.max con un count(*) dei record da leggere).
Ho aggiunto un mioform.refresh, ma lo fa per un pò, poi basta, si blocca.

MarcoGG
14-05-2009, 13:09
Così, senza vedere alcun codice :

1. Assicurati che l'attributo della Form "AutoRedraw" sia True.

2. Se con il semplice AutoRedraw a True non noti cambiamenti, allora prova ad inserire una chiamata a DoEvents nel ciclo, dopo ogni incremento del valore progressbar...
Se, come penso, risolve, puoi eliminare eventuali chiamate a Refresh.

Spike79
14-05-2009, 13:11
Grande , intanto che aspettavo qualche risposta, mi son messo a fare esperimenti, e penso che con DoEvents abbia risolto !!!!
Che strano comportamento!

MarcoGG
14-05-2009, 13:25
Grande , intanto che aspettavo qualche risposta, mi son messo a fare esperimenti, e penso che con DoEvents abbia risolto !!!!
Che strano comportamento!

Perchè "strano" ? :D
DoEvents serve proprio per scopi come questo. Se vuoi saperne qualcosa in più dai anche un'occhiata qui :
http://www.hwupgrade.it/forum/showthread.php?t=1954524&page=4
[ mio post #73 ]. :)

Spike79
14-05-2009, 13:32
Sempre gentilissimo.
Ora mi leggo tutto per bene così aggiungo qualcosa alle mie (scarse) conoscenze di VB!