Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/12/2010, 14:30
Avatar de davincci
davincci
 
Fecha de Ingreso: enero-2005
Mensajes: 193
Antigüedad: 19 años, 4 meses
Puntos: 0
Captura de teclado

Hola a todos.

Estoy haciendo un trabajo para mi estudio virtual y me han pedido que utilize un cronometro en html, además que utilize las teclas para remplazar las funciones de los botones como son iniciar, toma de parciales, reiniciar y parar. Hasta el momento esta parte esta al día.

Pero el primer problema que tengo es que solo puedo utilizar las teclas F1, F2...hasta la F12. y me pide que debo hacerlo sea con el teclado alfabetico o númerico y aqui es donde tengo el problema.

El segundo problema que se me presenta es que debo hacer la toma de 10 ó 20 parciales, es decir que debo asignar una tecla a cada campo de texto. Es decir inicio el cronometro y si oprimo la tecla K debe tomar el parcial 1, si oprimo la tecla P tomo el parcial y así sucesivamente. Obviamente que si solucione el primer problema el tercero estará casi que resuleto.

Mi tercer problema es que debo de además hacer lo anterior, hacerlo de una forma abreviada. Debo tomar 10 o 20 parciales pero que quede en un listado o DataGrid como se haria en Visual Basic y aqui si no tengo ni la minima idea.


os dejo el código y muchas gracias por su colaboración de antemano.

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="javascript" type="text/javascript">

//Fin de la funcion de presionar tecla

//Funcion de toma de parcial parar e inicia cronometro
function capturarf2(e){
        var code = (e.keyCode ? e.keyCode : e.which);
		
		//Inicializar cronometro con F2
				if(code == 113) {
              IniciarCrono()
 
		}
		
		//Tomar parcial en el cronometro cn F4
		if(code == 115) {
		document.crono.parcial.value = document.crono.display.value
		document.crono.Parcial1.value = document.crono.display.value
		}
		
					//Parar el cronometro con F8
		if(code == 119) { 
		clearTimeout(CronoID)
		}
		
				//Reiniciar cronometro con F9
				if(code == 120) {
		    document.crono.display.value = '00:00:0'
    document.crono.parcial.value = '00:00:0'
		}
		
		
	
		     }

document.onkeydown=capturarf2;
//Fin de la funcion de presionar tecla
var CronoID = null
var CronoEjecutandose = false
var decimas, segundos, minutos

function DetenerCrono (){
       if(CronoEjecutandose)
           clearTimeout(CronoID)
       CronoEjecutandose = false
}

function InicializarCrono () {
    //inicializa contadores globales
    decimas = 0
    segundos = 0
    minutos = 0
    
    //pone a cero los marcadores
    document.crono.display.value = '00:00:0'
    document.crono.parcial.value = '00:00:0'
}

function MostrarCrono () {
           
       //incrementa el crono
       decimas++
    if ( decimas > 9 ) {
        decimas = 0
        segundos++
        if ( segundos > 59 ) {
            segundos = 0
            minutos++
            if ( minutos > 99 ) {
                alert('Fin de la cuenta')
                DetenerCrono()
                return true
            }
        }
    }

    //configura la salida
    var ValorCrono = ""
    ValorCrono = (minutos < 10) ? "0" + minutos : minutos
    ValorCrono += (segundos < 10) ? ":0" + segundos : ":" + segundos
    ValorCrono += ":" + decimas    
            
      document.crono.display.value = ValorCrono

      CronoID = setTimeout("MostrarCrono()", 100)
    CronoEjecutandose = true
    return true
}

function IniciarCrono () {
     DetenerCrono()
     InicializarCrono()
    MostrarCrono()
}

function ObtenerParcial() {
    //obtiene cuenta parcial
	
    document.crono.parcial.value = document.crono.display.value
}

</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CRONOMETRO</title>
<style type="text/css">
<!--
.Estilo1 {
	color: #FF0000;
	font-weight: bold;
}
-->
</style>
</head>

<body>
<p align="center"><strong>CRONOMETRO</strong>
  <!-- Para visualizar el cronómetro -->
</p>
<div class="recuadro3">
<form action="" name="crono">
  <p align="center">
    <label>
    <input name="display" type="text" id="display" value="00:00:0" />
    </label>
  </p>
  <p align="center">
    <input name="parcial" type="text" value="00:00:0" size="8" />
</p>
  <p align="center">
    <input name="Parcial1" type="text" id="Parcial1" value="00:00:0" size="8" />
  </p>
  <p align="center">
    <label></label>
  </p>
  <p align="center">&nbsp;</p>
  <p align="center">
  <input type="button" name="Iniciar" value=" Iniciar F2" onclick="IniciarCrono()" />
   <input type="button" name="Parcial" value="Parcial F4" onclick="ObtenerParcial()" />
   <input type="button" name="Parar" value=" Parar F8" onClick="DetenerCrono()"> 
    <input type="button" name="Cero" value="  Cero  F9" onClick="DetenerCrono(); InicializarCrono()">
  </p>
  <p align="center">&nbsp;</p>
</form>
</div>

<p>&nbsp;</p>
</body>
</html>
__________________
Mil gracias por sus enseñanzas.

Davincci