Uso dello ''Spinner'': differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 17: Riga 17:
  '''Public''' Sub Form_Open()
  '''Public''' Sub Form_Open()
      
      
  With Spinner1
  With Spinner1
    .Label = True
    .Label = True
    .Value = 0
    .Value = 0
  End With
    .Start
  End With
   
   
  With Timer1
  With Timer1
    .Delay = 100
    .Delay = 100
    .Start()
    .Start()
  End With
  End With
   
   
  '''End'''
  '''End'''
Riga 32: Riga 33:
  '''Public''' Sub Timer1_Timer()
  '''Public''' Sub Timer1_Timer()
   
   
  If s > 1 Then
  If s > 1 Then
    With Spinner1
    With Spinner1
      .Stop()
      .Stop()
      .Delete()
      .Delete()
    End With
    End With
    Timer1.Stop()
    Timer1.Stop()
    Return
    Return
  Endif
  Endif
    
    
  Spinner1.Value = s
  Spinner1.Value = s
    
    
  s += 0.01
  s += 0.01
    
    
  '''End'''
  '''End'''




In quest'altro esempio verrà utilizzata la funzione ''Wait'' al posto del ''Timer'', e l'oggetto ''Spinner'' sarà avviato al di fuori dell'apertura del ''Form'' principale del programma, ma cliccando su un tasto:
In quest'altro esempio verrà utilizzata la funzione ''Wait'' al posto del ''Timer'', e l'oggetto ''Spinner'' sarà avviato al di fuori dell'apertura del ''Form'' principale del programma, ma cliccando su un tasto:
  ''' Public''' Sub Form_Open()
  '''Public''' Sub Form_Open()
   
   
   Spinner1.Stop
   Spinner1.Stop
   
   
  End'''
  '''End'''
   
   
   
   
Riga 61: Riga 61:
   Dim b As Byte
   Dim b As Byte
   Dim s As Single
   Dim s As Single
 
  With Spinner1
  With Spinner1
    .Label = True
    .Label = True
    .Value = 0
    .Value = 0
    .Start
    .Start
  End With
    For b = 0 To 100
 
      .Value = s
  For b = 0 To 100
      s += 0.01
    Spinner1.Value = s
      Wait 0.01
    s += 0.01
    Next
    Wait 0.01
    .Stop
  Next
    .Delete
 
  End With
  With Spinner1
    .Stop
    .Delete
  End With
    
    
  '''End'''
  '''End'''

Versione delle 15:19, 3 apr 2021

Lo Spinner è un oggetto grafico GUI avente aspetto circolare che ruota in continuazione di 360° e che rappresenta un'attesa che termini un processo.


Lo Spinner può essere utilizzato senza o con l'indicazione in rappresentazione percentuale del tempo sin a quel momento passato rispetto al termine del processo. Ovviamente potrà anche indicare, ad esempio, la quantità di byte caricati sino a quel momento rispetto alla totale dimensione da caricare.

Per ottenere anche l'indicazione della percentuale bisognerà porre a vero la proprietà .Label dello Spinner:

Spinner1.Label = True

e impostare il valore della percentuale con un valore in virgola mobile, ad esempio:

Spinner1.Value = 0.33   ' Verrà mostrato: 33%


Esempi pratici

Mostramo di seguito un semplice esempio didattico dell'uso dell'oggetto Spinner, con il quale si farà soltanto incrementare la percentuale, indicata nello Spinner, mediante un Timer. Si porrà sul Form l'icona dell'oggetto Spinner, nonché quella dell'oggetto speciale Timer. Poi si imposterà il seguente codice:

Private s As Single


Public Sub Form_Open()
   
 With Spinner1
   .Label = True
   .Value = 0
   .Start
 End With

 With Timer1
   .Delay = 100
   .Start()
 End With

End
 
 
Public Sub Timer1_Timer()

 If s > 1 Then
   With Spinner1
     .Stop()
     .Delete()
   End With
   Timer1.Stop()
   Return
 Endif
  
 Spinner1.Value = s
  
 s += 0.01
 
End


In quest'altro esempio verrà utilizzata la funzione Wait al posto del Timer, e l'oggetto Spinner sarà avviato al di fuori dell'apertura del Form principale del programma, ma cliccando su un tasto:

Public Sub Form_Open()

  Spinner1.Stop

End


Public Sub Button1_Click()
 
 Dim b As Byte
 Dim s As Single
 
 With Spinner1
   .Label = True
   .Value = 0
   .Start
   For b = 0 To 100
     .Value = s
     s += 0.01
     Wait 0.01
   Next
   .Stop
   .Delete
 End With
 
End