Autore Topic: [RISOLTO]Problema aggiornamento label.text durante un ciclo  (Letto 891 volte)

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
inserisco il codice :

Codice: [Seleziona]
PUBLIC SUB Button1_Click()

 DIM $hConn AS NEW Connection
 DIM datanome AS String
 DIM datapercorso AS String
 DIM sql AS String
 DIM hres AS Result
 DIM hres2 AS Result
  
 Label1.text = "importazione dati nel database"
 
 datanome = "camigest"
 datapercorso = "/home/matteo/Scrivania/Gestionale/CAMIGest/database/"
 
  WITH $hConn
  .Type = "sqlite3"
  .Host = datapercorso
  .Login = ""
  .Password = ""
  END WITH
  
  $hConn.Name = datanome
  $hConn.Open
  
      
  sql = "SELECT*FROM tab"
  hres2 = $hConn.Exec(sql)
  i = 1 / hres2.Count
  
  
  FOR EACH hres2
    
    ProgressBar1.Value = ProgressBar1.Value + y
    $hConn.Begin
    hres = $hConn.Create("tab2")
    hres!descrizione = hres2!Descrizione
    hres!tipo = hres2!Tipo
    hres.Update
    $hConn.Commit
    
  NEXT

END


vorrei che label1.text si aggiornasse prima di eseguire FOR EACH HRES2 però si aggiorna alla fine del ciclo. Qualcuno sa come risolvere questo problema? GRAZIE
« Ultima modifica: 16 Maggio 2010, 23:11:24 da doublemm »
Matteo DoubleMM Mion

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Problema aggiornamento label.text durante un ciclo
« Risposta #1 il: 16 Maggio 2010, 23:00:03 »
PUBLIC SUB Button1_Click()

 DIM $hConn AS NEW Connection
 DIM datanome AS String
 DIM datapercorso AS String
 DIM sql AS String
 DIM hres AS Result
 DIM hres2 AS Result
 
 Label1.text = "importazione dati nel database"
 
 Wait 0.1

 datanome = "camigest"
 datapercorso = "/home/matteo/Scrivania/Gestionale/CAMIGest/database/"
 
  WITH $hConn
  .Type = "sqlite3"
  .Host = datapercorso
  .Login = ""
  .Password = ""
  END WITH
 
  $hConn.Name = datanome
  $hConn.Open
 
     
  sql = "SELECT*FROM tab"
  hres2 = $hConn.Exec(sql)
  i = 1 / hres2.Count
 
 
  FOR EACH hres2
   
    ProgressBar1.Value = ProgressBar1.Value + y
    Wait 0.1
    $hConn.Begin
    hres = $hConn.Create("tab2")
    hres!descrizione = hres2!Descrizione
    hres!tipo = hres2!Tipo
    hres.Update
    $hConn.Commit
     
  NEXT

END

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Re: Problema aggiornamento label.text durante un ciclo
« Risposta #2 il: 16 Maggio 2010, 23:02:20 »
non rischio col wait dentro al ciclo di rallentare il ciclo già abbastanza lungo? se lo metto solo dopo label.text può bastare?
Matteo DoubleMM Mion

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Problema aggiornamento label.text durante un ciclo
« Risposta #3 il: 16 Maggio 2010, 23:06:21 »
si basta... era solo per aggiornare la progress bar

al massimo puoi far cosi':

Dim Nx as integer

...

 FOR EACH hres2
    inc Nx
    If Nx = 100 then
      ProgressBar1.Value = ProgressBar1.Value + y
      Wait 0.1
      Nx = 0
    EndIf
    $hConn.Begin
    hres = $hConn.Create("tab2")
    hres!descrizione = hres2!Descrizione
    hres!tipo = hres2!Tipo
    hres.Update
    $hConn.Commit
     
  NEXT


dove Nx limita i wait

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Problema aggiornamento label.text durante un ciclo
« Risposta #4 il: 16 Maggio 2010, 23:08:24 »
scusa ma  ProgressBar1.Value = ProgressBar1.Value + y deve rimanere fuori dall'If altrimenti non si aggiornerebbe correttamente

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Re: Problema aggiornamento label.text durante un ciclo
« Risposta #5 il: 16 Maggio 2010, 23:10:58 »
grazie ho risolto. con il wait dopo la label si aggiorna appena clicco il button. La barra cmq si aggiorna anche senza il wait. grazie ancora
Matteo DoubleMM Mion