Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Aiutatemi!!!!

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    22

    Aiutatemi!!!!

    Buona giornata a tutti,ho un piccolo problema ,qualcuno può dirmi cosa c'é di sbagliato in questo codice,ringrazio anticipatamente a chiunque risponde.


    Private Sub Timer1_Timer()
    Dim Ore, Minuti, Secondi, Resto As Integer
    Dim StringaOre, StringaMinuti, StringaSecondi,
    Tempo As String
    NumSecondi = NumSecondi + l
    Ore = Int(NumSecondi / 3600)
    Resto = NumSecondi - (Ore * 3600)
    Minuti = Int(Resto / 60)
    Secondi = Resto - (Minuti * 60)
    StringaOre = Str$(Ore)
    StrigaMinuti = Str$(Minuti)
    StringaSecondi = Str$(Secondi)
    Tempo = StringaOre + ":"
    Tempo = Tempo + StringaMinuti + ":"
    Tempo = Tempo + StringaSecondi
    lblMessaggio.Caption = Tempo
    End Sub
    Camelon

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    30
    La routine è formalmente giusta, ma non ho capito cosa vuoi fare... vuoi visualizzare un orologio ?

    Private Sub Timer1_Timer()

    Orario.Text = CStr(Time)

    End Sub

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    22
    Ciao Lucarr67,
    é da un po' di tempo che sto cercando di studiare ed imparare questo tipo di linguaggio attraverso un libro e varie riviste con i vari tutorial ecc.,quindi come vedi non sono molto pratico del settore e spero di riuscire a combinare qualcosa.
    Tornando al problema,questo é un esercizio che ho trovato da qualche parte in questo sito e vuole simulare un cronografo che visualizzi in una Label il numero di secondi trascorsi ed essere azzerato per mezzo di un pulsante Azzera.
    L'indicazione del tempo é rappresentata nel formato HH:MM:SS.
    Non so se sono stato chiaro e comunque ti ringrazio ancora .
    Camelon

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    327
    Si ma spiegaci, qual'e' il risultato atteso e invece cosa succede a te, così capiamo.

    Hai attivato il timer?

  5. #5
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Ciao Camelon.
    Nel tuo codice manca la dichiarazione della variabile NumSecondi, che devi scegliere Static perchè altrimenti non s'incrementerebbe mai.
    Visto che il formato deve essere HH:MM:SS, potresti usare la format per avere una stringa lunga 2 caratteri (2 secondi = 02 secondi).
    Quindi potresti anche non utilizzare nessuna variabile per secondi minuti e ore, visto che vengono utilizzate solamente per "copiare" il risultato.
    codice:
    Private Sub Timer1_Timer()
    Dim Ore, Minuti, Secondi, Resto As Integer
    Dim Tempo As String
    Static NumSecondi As Long
    
    NumSecondi = NumSecondi + 1
    Ore = Int(NumSecondi / 3600)
    Resto = NumSecondi - (Ore * 3600)
    Minuti = Int(Resto / 60)
    Secondi = Resto - (Minuti * 60)
    
    Tempo = Format(CStr(Ore), "0#") & ":" & _
            Format(CStr(Minuti), "0#") & ":" & _
            Format(CStr(Secondi), "0#")
    
    Label1.Caption = Tempo
    Label1.Refresh
    End Sub
    Siccome però devi poter azzerare il conteggio, devi dichiarare pubblica la variabile NumSecondi e azzerarla nell'evento Click di un tasto.

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    22
    Scusa la mia ignoranza ,cosa vuol dire Dichiarare pubblica una variabile ???
    Camelon

  7. #7
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Dichiarare pubblica una variabile significa che il suo valore può essere letto o modificato in "tutte" le procedure.

    In questo caso utilizzi due oggetti: un timer per il conteggio e un tasto per azzerare. Il conteggio avviene nella Timer_Timer mentre l'azzeramento nella Command_Click. Restano due procedure separate mentre tu hai bisogno di condividere la variabile NumSecondi per poterla azzerare.

    Quindi basta che ti metti nella sezione "generale", "dichiarazioni" e dichiari la tua variabile.


  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    22
    Andando nella sezione generale "dichiarazioni"io vedo una scritta che dice Option Explicit quindi deduco che prima o dopo queste parole io dovrei scrivere qualcosa ,o sbaglio!!!
    Se la risposta é si puoi dirmi cosa devo scrivere.Grazie Mabi
    Ti saluto
    Camelon

  9. #9
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Sotto "Option Explicit" scrivi semplicemente:
    Dim NumSecondi as Long
    codice:
    Option Explicit
    
    Dim NumSecondi As Long
    
    Private Sub Timer1_Timer()
    Dim Ore, Minuti, Secondi, Resto As Integer
    Dim Tempo As String
    
    NumSecondi = NumSecondi + 1
    Ore = Int(NumSecondi / 3600)
    Resto = NumSecondi - (Ore * 3600)
    Minuti = Int(Resto / 60)
    Secondi = Resto - (Minuti * 60)
    
    Tempo = Format(CStr(Ore), "0#") & ":" & _
            Format(CStr(Minuti), "0#") & ":" & _
            Format(CStr(Secondi), "0#")
    
    Label1.Caption = Tempo
    Label1.Refresh
    End Sub
    
    Private Sub Command1_Click()
    NumSecondi = 0
    End Sub

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    22
    Come mai copiando ed incollando nella sezione Generale ed dichiarazioni il codice che mi hai dato mi da l'errore "Previsto:"Istruzione oppure fine istruzione"
    Ciao Ciao
    Camelon

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.