Italian ProgressDialogShow

sejo

Member
Licensed User
Longtime User
Questo è il mio codice:

B4X:
       ProgressDialogShow2("Ripristino in corso. Attendere...", False)
       
       txtCampo1.Text = ""
       spnCampo2.SelectedIndex = 0
       spnCampo3.SelectedIndex = 0
       
       AggiornaLista1
       AggiornaSpinner2
       AggiornaSpinner3
       ProgressDialogHide

Il problema è che la progress dialog non mi viene visualizzata all'inizio della routine ma giusto una frazione di secondo dopo la sub AggiornaSpinner3 per poi sparire subito dopo l'Hide.
Come mai non viene visualizzata all'inizio e per tutta la durata della funzione, fino all'Hide???
Grazie...
 

JonPM

Well-Known Member
Licensed User
Longtime User
B4X:
ProgressDialogShow2("Ripristino in corso. Attendere...", False)
DoEvents
   
   txtCampo1.Text = ""
   spnCampo2.SelectedIndex = 0
   spnCampo3.SelectedIndex = 0
   
   AggiornaLista1
   AggiornaSpinner2
   AggiornaSpinner3
   ProgressDialogHide
 

giannimaione

Well-Known Member
Licensed User
Longtime User
B4X:
ProgressDialogShow2("Ripristino in corso. Attendere...", False)
DoEvents
   
   txtCampo1.Text = ""
   spnCampo2.SelectedIndex = 0
   spnCampo3.SelectedIndex = 0
   
   AggiornaLista1
   AggiornaSpinner2
   AggiornaSpinner3
   ProgressDialogHide

in pratica devi utilizzare l'istruzione DoEvents, anche nelle varie subroutine (AggiornaLista1, ecc.). Bisognerebbe anche vedere il codice che hai utilizzato in queste subroutine.
Esempio se devi elaborare molti dati (ad esempio in un LOOP), conviene inserire DoEvents.
Fai attenzione:
for i=1 to 10000
bla
bla
bla
dovents :'molto lento
next i
for i=1 to 10000
bla
bla
bla
If (i Mod 10)=0 Then
DoEvents :' un po + veloce
End If
next


se possibile posta un po di codice
 
Top