Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

03/04/2006 #1


control con visual basic
Hola a todos!

La verdad recién estoy empezando con esto de programación en Visual Basic y quisiera saber si alguien sabe bien como hacer que un boton de comandos responda solamente al presionar una sola tecla.

Me explico: Si por ejemplo, si hiciera una aplicacion que me permita encender una lampara, y quisiera que la lampara se encienda solo al presionar la tecla "L" y al volver a presionar la misma tecla, se apague la lampara.

Se que existe el comando KEYPRESS, KEY UP, y KEY DOWN pero no se bien como utilizar la sintaxis para lo que deseo.

Tambien agradeceria que alguien me ayudara a hacer lo mismo pero con las teclas de direccion del teclado, tengo entendido que ellas no poseen caracteres reconocidos como ascii o si?

de antemano muchas gracias y cualquier ayudita es bien recibida
03/04/2006 #2


tendrias q crear un ciclo cuando presiones el boton le des un valor, cuando vuelvas a darle estara en es valor y vuelves a cambiarle el valor de nuevo. ej

general
n= 0 ;0=apagado, 1= encendido

(keypress)

if n=0 then
; enciende lampara
n=1
if n= 1 then
;apagar lampara

end if


es un ejemplo para captar la idea.

en esta pagina estan los scancodes del teclado por si te sirve de algo.

http://atc.ugr.es/docencia/udigital/ap05.html

esto es solo una ayuda espero q te sirva de apoyo.
03/04/2006 #3


Puedes entrar tambien aqui tal vez encuentres algo q te pueda ayudar

http://www.elguille.información/vb/default.aspx
04/04/2006 #4


muchas gracias jmax6!!!! tratare de intentarlo con tu información!!! 8-)
10/08/2011 #5


jmax6 dijo: Ver Mensaje
tendrias q crear un ciclo cuando presiones el boton le des un valor, cuando vuelvas a darle estara en es valor y vuelves a cambiarle el valor de nuevo. ej

general
n= 0 ;0=apagado, 1= encendido

(keypress)

if n=0 then
; enciende lampara
n=1
if n= 1 then
;apagar lampara

end if


es un ejemplo para captar la idea.

en esta pagina estan los scancodes del teclado por si te sirve de algo.

http://atc.ugr.es/docencia/udigital/ap05.html

esto es solo una ayuda espero q te sirva de apoyo.
Buenas noches.

Para cambiar el estado de una variable tipo "Byte" una forma muy elegante es hacerlo con

una función EXOR 1

Mira este código...

Dim Numero(26) As Byte ' Reservamos 26 posiciones de la "A" a la "Z"
Public tecla As Integer
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
tecla = KeyCode

If tecla > 64 And tecla < 91 Then 'De la "A" a la "Z"
tecla = tecla - 64 'Restamos 64 para ponernos en el rango de 1 a 26
Procesar ' Vamos a la Sub Rutina "Procesar"
End If
End Sub

Public Sub Procesar()
Cls ' Borramos pantalla
Numero(tecla) = Numero(tecla) Xor 1 'Invertimos el valor que hay en cada posición
For i = 1 To 26
Print " " & Numero(i) & " "; ' Lo visualizamos
Next i
End Sub


Solo tienes que abrir un formulario, no hace falta que pongas nigún control.
Procura que el formulario tenga suficiente anchura para visualizar la cadena completa
En la pantalla de codigo borra....


Private Sub Form_Load()

End Sub


Copia el código anterior y pégalo en la pantalla de código

Ejecútalo.


Pulsa cualquier tecla de la A a la Z
Verás que en el formulario aparece una ristra de ceros menos la posición correspondiente a la tecla pulsada que estará a 1.
Si pulsas la misma tecla, esa posición cambiará de valor.
Como verás el proceso es muy simple, solo tienes que procesar la variable Numero(x) dónde la x es el subindice de la variable Numero que tiene 25 posiciones.
Espero que te sea de utilidad.

Saludos.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.