Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Duda sobre visual basic 6

Estas en el tema de Duda sobre visual basic 6 en el foro de Visual Basic clásico en Foros del Web. Mi pregunta es como puedo establecer en un formulario principal que al presionar por ejemplo el numero 1 en el teclado y me pase a ...
  #1 (permalink)  
Antiguo 17/03/2008, 19:49
 
Fecha de Ingreso: diciembre-2007
Mensajes: 9
Antigüedad: 16 años, 4 meses
Puntos: 0
Sonrisa Duda sobre visual basic 6

Mi pregunta es como puedo establecer en un formulario principal que al presionar por ejemplo el numero 1 en el teclado y me pase a otro formulario pero mi problema viene por que tengo mas componentes textbox y listbox en el formulario principal y no me deja ya presionar la tecla 1 y muchas gracias por la respuestas de estos foros he recibido buenas ayudas
gracias soy samuel
  #2 (permalink)  
Antiguo 17/03/2008, 20:29
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Re: Duda sobre visual basic 6

Hola Samuel,

Para capturar las teclas en un formulario antes de ser procesadas por los botones usa la propiedad KeyPreview del formulario.

... Cuando KeyPreview está en su valor por defecto de Falso, el ingreso por teclado va al control que tiene el foco. El formulario no se entera de los eventos de teclado, y esto está bien para la mayoría de programas. Cuando la propiedad KeyPreview esta True, de esta forma, los manejadores de eventos de teclado del formulario (KeyDown, KeyUp y KeyPress) son disparados antes que los eventos de teclado sean pasado al control que tiene el foco. Esto te permite manejar el ingreso por teclado a dos niveles, interceptando las teclas que tienen un significado global a nivel de formulario....

http://www.pgacon.com/visualbasic.ht...iew%20Property

Esto significa:
Cambia el valor de la propiedad KeyPreview a True en el formulario
y agrega el código para manejar el evento a nivel de formulario:

Código:
Private Sub Form_KeyDown (KeyCode As Integer, Shift As Integer)
   Select Case KeyCode
      Case vbKeyF1:
        ' Codigo para desplegar ayuda
      Case vbKeyF2:
        ' Codigo para guardar datos.
      Case vbKeyF3:
        ' Codigo praa abrir un archivo.
      REM Case vbKey1: Caso Tecla 1
        REM Codigo para abrir otro formulario.
   End Select
End Sub
Saludos,
  #3 (permalink)  
Antiguo 18/03/2008, 07:29
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: Duda sobre visual basic 6

Hola,hay muchisimas formas de detectar las teclas,las que estas usando esta bien,pero por ahi no es muy efectiva ya que depende que el formulario tenga el foco y a veces por mas que tengas la propiedad KeyPreview = True no te detecta las teclas porque hay controles que le quitan el foco al formulario,por dar un simple ejemplo,una animacion flash, una que es muy buena que no necesita de los eventos del formulario para detectarlas es con las api's RegisterHotKey y UnregisterHotKey,fijate aca:

Capturar Teclas

o tambien lo podes usar con un Timer y la api GetAsynKeyState.

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #4 (permalink)  
Antiguo 18/03/2008, 11:08
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Re: Duda sobre visual basic 6

Cita:
Iniciado por seba123neo Ver Mensaje
...pero por ahi no es muy efectiva ya que depende que el formulario tenga el foco ...
Efectivamente, algunos ActiveX le eliminan la funcionalidad a la propiedad KeyPreview,

Saludos,

Última edición por HackmanC; 18/03/2008 a las 11:29 Razón: Oooooooooops !!!
  #5 (permalink)  
Antiguo 18/03/2008, 11:27
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: Duda sobre visual basic 6

no se a que te referis,yo me refiero a esto,empeza un proyecto nuevo ponele la propiedad keypreview en true,proba tu codigo,anda excelente ,pone un control sockwaveflash en el form,proba el codigo,¿funciona?..

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #6 (permalink)  
Antiguo 18/03/2008, 11:29
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Re: Duda sobre visual basic 6

Cita:
Iniciado por seba123neo Ver Mensaje
no se a que te referis,yo me refiero a esto,empeza un proyecto nuevo ponele la propiedad keypreview en true,proba tu codigo,anda excelente ,pone un control sockwaveflash en el form,proba el codigo,¿funciona?..
Efectivamente, al momento que estabas escribiendo este mensaje, yo editaba el anterior, y tienes toda la razón. Aunque nunca pensé en ActiveX, puesto que 12sam no lo menciona, y si le funciona el KeyPreview, y no usa ActiveX (que es lo más probable), no veía el motivo por el cual no le sirviera el metodo inicial.

De cualquier forma tienes razón, ya verá 12sam si necesita otra forma de hacerlo,

Saludos,

Última edición por HackmanC; 18/03/2008 a las 11:33 Razón: Yep.
  #7 (permalink)  
Antiguo 24/03/2008, 12:26
 
Fecha de Ingreso: marzo-2008
Mensajes: 6
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Duda sobre visual basic 6

no es mas facil hacer esto
Option Explicit


Private Sub Form_Keydown(Keycode As Integer, shift As Integer)
If Keycode Then
Select Case Keycode
Case vbKeyL ' o con la tecla q kieras
Call Formulario ' creas un sub q esta mas abajo
End Select
End If
End Sub

Sub Formulario()
Form2.Visible = True
Form1.Visible = False
End Sub
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:20.