none
Aplicación 'cronómetro'

Answers

  • Te recomiendo que leas las ayudas sobre el componente Timer. Yo lo implementaba mucho cada vez que quería hacer lo mismo, es decir, mover controles, pero en mi caso no se trataba de un juego, sino de efectos en botones y cosas así. Después que te familiarices con él (cosa que no tiene ciencia) solo queda usar la lógica para hacer todo tipo de animaciones.

    Yo, por ejemplo, me cansé de escribir todo el código cada vez que quería lograr un efecto de movimiento, por lo cual me creé una clase dedicada exclusivamente a eso, que por supuesto usa un Timer. Ahora solo debo incluirla en el formulario donde la necesite, indicarle el control (o controles) que deseo mover, las coordenadas, e iniciarla. De verdad ha sido muy útil.

    Saludos.


    Aquel que pregunta es un tonto por cinco minutos, pero el que no pregunta permanece tonto por siempre
    Proverbio chino
    Wednesday, November 16, 2011 3:49 AM
  • Para vb6:

    http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/409-ejemplo-de-cronometro.htm

    Nota: puse eso por el uso que pones un commandbutton. Por cierto checa la fuente y usa lo necesario que se que lo entenderas bien.

     

     


    Saludos,
    Recuerda que si las respuestas te ayudan a resolver tus problemas no olvides marcarla como respuesta, ya que otros usuarios pueden tener el mismo problema.
    J. Miguel
    Wednesday, November 16, 2011 6:56 AM
  • Aquí el código:

     

    Public Class frmCronometro
    
        'Variable para almacenar el tiempo de arranque
        Private startTime As TimeSpan
    
        Private Sub btnStartStop_Click(ByVal sender As System.Object, _
                                       ByVal e As System.EventArgs) _
                                       Handles btnStartStop.Click
            'Cambio la función del botón según su texto
            If btnStartStop.Text = "Iniciar" Then
                'Asigno valores
                btnStartStop.Text = "Detener"
                Me.Text = "Cronómetro - Iniciado"
    
                'Almaceno la hora actual e inicio el Timer
                startTime = Now.TimeOfDay
                tmrRun.Start()
            Else
                'Asigno valores
                btnStartStop.Text = "Iniciar"
                Me.Text = "Cronómetro - Detenido"
    
                'Detengo Timer
                tmrRun.Stop()
            End If
        End Sub
    
        Private Sub tmrRun_Tick(ByVal sender As System.Object, _
                                ByVal e As System.EventArgs) _
                                Handles tmrRun.Tick
            'Obtengo tiempo trancurrido desde que se inició el cronómetro
            Dim elapsed As TimeSpan = Now.TimeOfDay.Subtract(startTime)
    
            'Detengo Timer si alcanza las 100 horas.
            'PD: no es necesario probar que funciona! xD
            If elapsed.Hours = 100 Then
                tmrRun.Stop()
                Return
            End If
    
            'Asigno tiempo trancurrido a los Label
            lblHH.Text = TimeFormat(elapsed.Hours, 2)
            lblMM.Text = ":" & TimeFormat(elapsed.Minutes, 2)
            lblSS.Text = ":" & TimeFormat(elapsed.Seconds, 2)
            lblMS.Text = ":" & TimeFormat(elapsed.Milliseconds, 3)
        End Sub
    
        'Función que devuelve las fracciones de tiempo (HH, MM, etc.)
        'con ceros a la izquierda
        Private Function TimeFormat(ByRef value As Integer, _
                                    ByVal maxLength As Byte) As String
            'Variables
            Dim result As String = value.ToString
    
            'Agrego ceros a la izquierda
            Do While result.Length < maxLength
                result = "0" & result
            Loop
    
            'Devuelo resultado
            Return Mid(result, 1, 2)
        End Function
    
    End Class
    

     

    Saludos.


    Ser consciente de la propia ignorancia es un gran paso hacia el saber
    Benjamin Disraeli (1766-1848)
    Friday, November 18, 2011 11:37 PM

All replies

  • Te recomiendo que leas las ayudas sobre el componente Timer. Yo lo implementaba mucho cada vez que quería hacer lo mismo, es decir, mover controles, pero en mi caso no se trataba de un juego, sino de efectos en botones y cosas así. Después que te familiarices con él (cosa que no tiene ciencia) solo queda usar la lógica para hacer todo tipo de animaciones.

    Yo, por ejemplo, me cansé de escribir todo el código cada vez que quería lograr un efecto de movimiento, por lo cual me creé una clase dedicada exclusivamente a eso, que por supuesto usa un Timer. Ahora solo debo incluirla en el formulario donde la necesite, indicarle el control (o controles) que deseo mover, las coordenadas, e iniciarla. De verdad ha sido muy útil.

    Saludos.


    Aquel que pregunta es un tonto por cinco minutos, pero el que no pregunta permanece tonto por siempre
    Proverbio chino
    Wednesday, November 16, 2011 3:49 AM
  • "alesly" escribió:

    > ahora un amigo ne cesita esto enrique
    >
    > ELABORE LA APLICACION"CRONOMETRO"CON LOS SIGUIENTES
    > OBJETOS....: 1 COMMAND BUTTON,1 TIMER, 5 LABELS
    >
    > esas son la instrucciones gracias

    ¿Y tu amigo no puede efectuar él mismo la consulta?

    Me parece a mí que lo que desea tu amigo es que alguien le resuelva la tarea del colegio. ;-)

    La única "pista" que le voy a dar a tu amigo es decirle que sume un segundo a la hora actual en el evento Tick del control Timer, y que el resultado lo muestre en los controles Label. Y en cuanto al control Button, me imagino que servirá para poner en marcha (Start) y detener (Stop) el control Timer.


    Enrique Martínez
      [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instrucción Option Strict.

    Wednesday, November 16, 2011 6:46 AM
    Moderator
  • Para vb6:

    http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/409-ejemplo-de-cronometro.htm

    Nota: puse eso por el uso que pones un commandbutton. Por cierto checa la fuente y usa lo necesario que se que lo entenderas bien.

     

     


    Saludos,
    Recuerda que si las respuestas te ayudan a resolver tus problemas no olvides marcarla como respuesta, ya que otros usuarios pueden tener el mismo problema.
    J. Miguel
    Wednesday, November 16, 2011 6:56 AM
  • Bueno... No tenía nada qué hacer, y como me gusta programar te hice lo que pediste: el proyecto completo (ni que fuese tanto! Jeje!).

    Descárgalo AQUÍ.

    Coméntanos luego qué tal te va.

    PD: está en formato zip. Tendrás que descomprimirlo.


    Aquel que pregunta es un tonto por cinco minutos, pero el que no pregunta permanece tonto por siempre
    Proverbio chino
    Wednesday, November 16, 2011 8:55 AM
  • Hola, Jason:

    A fin de que tu "ejemplo de cronómetro" se pueda evaluar como respuesta a la "supuesta pregunta" efectuada por el usuario alesly, ¿no sería mejor que publicases en un mensaje el código fuente en lugar de descargar el proyecto? De ésta manera quedaría constancia del código en el propio foro, para cualquier usuario que lo pueda necesitar en el futuro, y de camino podrías eliminar el archivo de descarga.

    Lo he descargado y observo que tampoco son tantas líneas para que no lo puedas publicar. De todas maneras, lo dejo a tu elección, pero piensa que para que se pueda evaluar como satisfactoria tu respuesta, sería conveniente que quedara constancia de la respuesta.

    Un saludo


    Enrique Martínez
      [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instrucción Option Strict.

    Friday, November 18, 2011 3:58 PM
    Moderator
  • Me parece bien Enrique. Ya mismo empiezo a transcribirlo...
    Ser consciente de la propia ignorancia es un gran paso hacia el saber
    Benjamin Disraeli (1766-1848)
    Friday, November 18, 2011 11:25 PM
  • Aquí el código:

     

    Public Class frmCronometro
    
        'Variable para almacenar el tiempo de arranque
        Private startTime As TimeSpan
    
        Private Sub btnStartStop_Click(ByVal sender As System.Object, _
                                       ByVal e As System.EventArgs) _
                                       Handles btnStartStop.Click
            'Cambio la función del botón según su texto
            If btnStartStop.Text = "Iniciar" Then
                'Asigno valores
                btnStartStop.Text = "Detener"
                Me.Text = "Cronómetro - Iniciado"
    
                'Almaceno la hora actual e inicio el Timer
                startTime = Now.TimeOfDay
                tmrRun.Start()
            Else
                'Asigno valores
                btnStartStop.Text = "Iniciar"
                Me.Text = "Cronómetro - Detenido"
    
                'Detengo Timer
                tmrRun.Stop()
            End If
        End Sub
    
        Private Sub tmrRun_Tick(ByVal sender As System.Object, _
                                ByVal e As System.EventArgs) _
                                Handles tmrRun.Tick
            'Obtengo tiempo trancurrido desde que se inició el cronómetro
            Dim elapsed As TimeSpan = Now.TimeOfDay.Subtract(startTime)
    
            'Detengo Timer si alcanza las 100 horas.
            'PD: no es necesario probar que funciona! xD
            If elapsed.Hours = 100 Then
                tmrRun.Stop()
                Return
            End If
    
            'Asigno tiempo trancurrido a los Label
            lblHH.Text = TimeFormat(elapsed.Hours, 2)
            lblMM.Text = ":" & TimeFormat(elapsed.Minutes, 2)
            lblSS.Text = ":" & TimeFormat(elapsed.Seconds, 2)
            lblMS.Text = ":" & TimeFormat(elapsed.Milliseconds, 3)
        End Sub
    
        'Función que devuelve las fracciones de tiempo (HH, MM, etc.)
        'con ceros a la izquierda
        Private Function TimeFormat(ByRef value As Integer, _
                                    ByVal maxLength As Byte) As String
            'Variables
            Dim result As String = value.ToString
    
            'Agrego ceros a la izquierda
            Do While result.Length < maxLength
                result = "0" & result
            Loop
    
            'Devuelo resultado
            Return Mid(result, 1, 2)
        End Function
    
    End Class
    

     

    Saludos.


    Ser consciente de la propia ignorancia es un gran paso hacia el saber
    Benjamin Disraeli (1766-1848)
    Friday, November 18, 2011 11:37 PM