Newsgroup: it.comp.lang.visual-basic
Titolo: time (vb6)non si arresta

Salve a tutti, io ho fatto questa rutin che mi tiene aggiornata una 
classifica
di piloti in automatico, e fin qui tutto ok
Il problema è quando esco dal programma non esce subito ma dopo
il tempo imposteto in pausatime, come posso risolvere il problema?
sotto la rutin incriminata.
grazie a tutti
Public Sub tempovisualiza()
Dim x As Integer
Dim PauseTime, Start, Finish, TotalTime
Do
For x = 1 To conta
    PauseTime = 6   ' Imposta la durata.
   If esci = True Then
      Exit Do
      Exit Sub
   End If
   Label3 = nomecat(x)
   Numer_catt = numid(x)
   Select Case Numer_catt
        Case 4, 20
            Label3.BackColor = vbBlue
        Case 7, 16, 17
            Label3.BackColor = vbGreen
        Case 8
            Label3.BackColor = vbRed
        Case 9, 10, 19
            Label3.BackColor = vbYellow
        Case 15
   End Select
   visualizzaPunteggi
   Start = Timer   ' Imposta l'ora di inizio.
   Do While Timer < Start + PauseTime
      DoEvents      ' Passa il controllo ad altri processi.
   Loop
Next x
Loop
End Sub

Il problema č quando esco dal programma non esce subito ma dopo

Succede perchč il Doevents si attiva solo lě.
Esistono modi migliori di fare una temporizzazione senza usare dei lloop, ad
esempio usando il Timer
Se vuoi comunque usare il loop puoi usare la GetTickCount() che ritorna i msec
ed č abbastanza precisa, ma il DoEvents va comunque inserito nel loop
principale.
http://allapi.mentalis.org/apilist/GetTickCount.shtml
--
ciao
  Stefano

Resta il fatto che quando chiudo il programma mi resta attivo
per il periodo che ho impostato in  PauseTime = 6, e fino che non finiscono
i secondi impostati non esce dal programma.
io volevo se è possibile azzerare il tempo, ed uscire dal programma in 
qualsiasi
momento.
comunque grazie
ciao Claudio


momento.
Prova a mettere in Form_unload una cosa cosě:
Private Sub Form_Unload(Cancel As Integer)
Dim frmForm As Form
 For Each frmForm In Forms
    Unload frmForm
    Set frmForm = Nothing
 Next
End Sub
--
ciao
  Stefano

ti ringrazio ma dopo un pomeriggioo quasi di prove ho risolto in
questo modi
Public Sub tempovisualiza()
Dim x As Integer
Dim PauseTime, Start
ritorna:
    For x = 1 To conta
        PauseTime = pausasecondi   ' Imposta la durata.
        If esci = True Then ' --------- collegato al pulsante di exit sul 
form
            Exit Sub
        End If
        Label3 = nomecat(x)
        Numer_catt = numid(x)
        Select Case Numer_catt
            Case 4, 20
                Label3.BackColor = vbBlue
            Case 7, 16, 17
                Label3.BackColor = vbGreen
            Case 8
                Label3.BackColor = vbRed
            Case 9, 10, 19
                Label3.BackColor = vbYellow
            Case 15
        End Select
        If esci = False Then   ' --------- collegato al pulsante di exit sul 
form
            visualizzaPunteggi
        End If
        Start = Timer   ' Imposta l'ora di inizio.
        Do While Timer < Start + PauseTime
            If esci = True Then Exit Do  ' --------- collegato al pulsante 
di exit sul form
            DoEvents      ' Passa il controllo ad altri processi.
        Loop
    Next x
GoTo ritorna
End Sub
 e ti assicuro che esce dal programma senza attesa
ciao e grazie ancora