Newsgroup: it.comp.lang.visual-basic
Titolo: Vb6 timer e operazioni dov'è l'errore?

Salve  Io gli vorrei dire: se il il pc è connesso è lblora2 è vuoto 
lblora2 = lblora e ogni 10 secondi segna uno scatto nel lblscattiparzialii. 
(lblora segna l'ora)
Private Sub Timer1_Timer()
Lblora.Caption = Format(Now, "HH.MM.ss")       'ora che scorre
If IsConnected = True Then                                    ' se sei 
connesso
If lblora2.Caption = "" Then                                     'se lblora2 
è vuoto
 lblora2 = Lblora                                                     ' 
lblora2 diventa come lblora  e sta fermo
 Lblscattiparziali = "1" 
'Aggiungi 1 a Lblscattiparziali
    If DateDiff("s", lblora2.Caption, Lblora.Caption) >= 10 Then 
'quando lblora2 e maggiore di 10
           Lblscattiparziali = Lblscattiparziali + 1 
aggiungi 1 a quello che c'è scritto su   Lblscattiparziali'
    End If
    End If
    End If
    End Sub
qualcuno mi trova l'errore per favore???????? 

 che c'č scritto su   Lblscattiparziali'


 qualcuno mi trova l'errore per favore????????
Prova a vedere se cosě va meglio:
Private Sub Timer1_Timer()
Dim ora1 As Date
Static ora2 As Date
ora1 = Now
Lblora.Caption = Format(ora1, "HH.MM.ss")
If IsConnected = True Then
 If lblora2.Caption = "" Then
  ora2 = ora1
  lblora2.Caption = Lblora.Caption
  Lblscattiparziali.Caption = "1"
 ElseIf DateDiff("s", ora2, ora1) >= 10 Then
  ora2 = ora1
  Lblscattiparziali.Caption = CStr(CLng(Lblscattiparziali.Caption) + 1)
 End If
End If
End Sub
William. 

Grazie william io avevo giŕ risolto cosě ma il tuo č meglio perchč il 
lblora2 sta fermo mentre da me cammina ogni 10 secondi quindi col tuo alla 
fine degli scatti posso contare anche il tempo :-))
a proposito del tempo sai come si fa una sottrazione di ore?   i label sono 
con questo formato   10.10.10
grazie
If IsConnected = True Then
If lblora2 = "" Then
 lblora2 = Lblora
 Lblscattiparziali = "1"
End If
End If
Lblora.Caption = Format(Now, "HH.MM.ss")
If lblora2.Caption <> "" Then
    If DateDiff("s", lblora2.Caption, Lblora.Caption) >= 10 Then
        lblora2.Caption = Lblora.Caption
        Lblscattiparziali = Lblscattiparziali + 1


 grazie
Puoi fare come ti riporto qui sotto però c'è un problema nel tuo metodo di 
affrontare la cosa: io fossi in te terrei memorizzate le date intere 
(comprensive di giorno, mese e anno) perché col tuo metodo quando scatta la 
mezzanotte la differenza fra i 2 orari ovviamente risulterà sbagliata. Il 
calcolo che ti riporto è valido solo se fatto all'interno di una singola 
giornata:
 Dim Ora1() As String, Ora2() As String
 Dim dOra1 As Date, dOra2 As Date
 Dim DiffOrari As Long
 Dim Ore As String, Minuti As String, Secondi As String
 Ora1 = Split(Lblora.Caption, ".")
 Ora2 = Split(lblora2.Caption, ".")
 dOra1 = TimeSerial(CInt(Ora1(0)), CInt(Ora1(1)), CInt(Ora1(2)))
 dOra2 = TimeSerial(CInt(Ora2(0)), CInt(Ora2(1)), CInt(Ora2(2)))
 DiffOrari = Abs(DateDiff("s", dOra2, dOra1))
 Ore = CStr(DiffOrari \ 3600)
 DiffOrari = DiffOrari Mod 3600
 Minuti = Format(DiffOrari \ 60, "0#")
 Secondi = Format(DiffOrari Mod 60, "0#")
 lblDiff.Caption = Ore & "." & Minuti & "." & Secondi
William. 

Ti ringrazio ma se fa i conti solo fino a mezzanotte non va bene perchè se 
uno si collega diciamo alle 23 fa i conti sbagliati. Ho fatto così una 
sottrazione label ora  labelora2 e poi divido il risultato per 60 e viene 
artigianale ma funziona. Grazie per il tuo prezioso aiuto :-)) 


Sì, ma il problema non è nella mia funzione è nel modo in cui affronti la 
cosa.  Se non tieni conto della data allo scattare della mezzanotte la 
differenza risulterà sempre sbagliata e visto che nelle label non hai la 
data il risultato sarà sempre sbagliato.
William. 

 ha scritto nel messaggio 
news:fumlj1$so4$1...@aioe.org...
