• Lunes 23 de Diciembre de 2024, 07:48

Autor Tema:  Keyup  (Leído 1135 veces)

roy

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Keyup
« en: Miércoles 10 de Marzo de 2004, 21:45 »
0
hola a todos mi bronca es que estoy manejando las teclas de las funciones(F1...F12), con esto el usuario hace mas pronto su trabajo, asi que en lugar de tener un command1(boton en cual dar un click), que se me sirva para guardar alguna informacion, solo teclean F6 y efectua el codigo de un boton,  pero cuando esta un datagrid no me funcionan, todo el codigo lo pongo en el KeyUp de la forma, para cual la inicializo, la propiedad keypreview a verdadero, y no se  :comp: que hacer, pero si me funciona la tecla ESC, pero ninguna de las funciones, si esta visible un DataGrid, asi que si me pueden ayudar se los agradecere

elmango80

  • Miembro MUY activo
  • ***
  • Mensajes: 149
  • Nacionalidad: ve
    • Ver Perfil
Re: Keyup
« Respuesta #1 en: Jueves 11 de Marzo de 2004, 07:12 »
0
Lo que tienes que hacer es que en el evento KeyDown o KeyUp del DataGrid le dices que ejecute el evento KeyUp de tu formulario, algo asi

Código: Text
  1.  
  2. Private Sub DataGrid1_KeyUp(KeyCode As Integer, Shift As Integer)
  3.     Form_KeyUp KeyCode, Shift
  4. End Sub
  5.  
  6.  
Citar
No soy bueno, tampoco soy malo sino todo lo contrario...

9tnix

  • Miembro MUY activo
  • ***
  • Mensajes: 165
  • Nacionalidad: pe
    • Ver Perfil
Re: Keyup
« Respuesta #2 en: Jueves 11 de Marzo de 2004, 07:18 »
0
Salu2 Roy

Lo que podrias hacer es usar la api RegisterHotKey para registrar algunas teclas asi cuando las pulsas puedes usarlas para ejecutar alguna accion en este codigo que pongo lo que hace es registrar la combinacion CTRL+F para minimizar la ventana, espero que sirva de ayuda modificalo y luego me cuentas como te fue.

Código: Text
  1.  
  2. '//Pega esto en un form
  3. Private Const MOD_ALT = &H1
  4. Private Const MOD_CONTROL = &H2
  5. Private Const MOD_SHIFT = &H4
  6. Private Const PM_REMOVE = &H1
  7. Private Const WM_HOTKEY = &H312
  8. Private Type POINTAPI
  9.     x As Long
  10.     y As Long
  11. End Type
  12. Private Type Msg
  13.     hWnd As Long
  14.     Message As Long
  15.     wParam As Long
  16.     lParam As Long
  17.     time As Long
  18.     pt As POINTAPI
  19. End Type
  20. Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
  21. Private Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long) As Long
  22. Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As Msg, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long
  23. Private Declare Function WaitMessage Lib "user32" () As Long
  24. Private bCancel As Boolean
  25. Private Sub ProcessMessages()
  26. Dim Message As Msg
  27. Do While Not bCancel
  28.   WaitMessage
  29.   If PeekMessage(Message, Me.hWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then
  30.     WindowState = vbMinimized
  31.   End If
  32.   DoEvents
  33. Loop
  34. End Sub
  35. Private Sub Form_Load()
  36. Dim ret As Long
  37. bCancel = False
  38. ret = RegisterHotKey(Me.hWnd, &HBFFF&, MOD_CONTROL, vbKeyF)
  39. Me.AutoRedraw = True
  40. Me.Print "Press CTRL-F to minimize this form"
  41. Show
  42. ProcessMessages
  43. End Sub
  44. Private Sub Form_Unload(Cancel As Integer)
  45. bCancel = True
  46. Call UnregisterHotKey(Me.hWnd, &HBFFF&)
  47. End Sub
  48.  
  49.  

Un saludo zeekel ®
[KGT]
TP-Systems
our knowledge is our power!

roy

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Re: Keyup
« Respuesta #3 en: Viernes 12 de Marzo de 2004, 22:59 »
0
GRACIAS A LOS 2, HE UTILIZADO TAMBIEN EL KEYUP DEL DATAGRID, Y HE TOMADO LA OPINION DEL ELMANGO80 Y DE AHI LLAMO EL CODIGO DEL KEYUP DE LA FORMA DE TODOS MODOS REVISARE EL CODIGO QUE ME ENVIAS ZEKEEL, MUCHAS GRACIAS