• Sábado 21 de Diciembre de 2024, 15:27

Autor Tema:  Responder A Presion De Teclado  (Leído 2073 veces)

f0kylm

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Responder A Presion De Teclado
« en: Miércoles 1 de Diciembre de 2004, 16:32 »
0
Hola:

Estoy programando una aplicación en PB6.5 y tengo que hacer que se muestre una ventana cuando estando posicionado en un determinado campo de un datawindow presione la tecla F1, bueno yo he creado un nuevo evento de usuario con el Event Id pbm_dwnkey y tiene el siguiente codigo:

--------------------------------
If Key = KeyF1! Then
     Open(w_dependencia)
End If
--------------------------------

El problema que tengo es que la ventana se muestra cuando estoy posicionado en cualquiera de los campos del datawindow, como puedo hacer para que el evento responda solo estando posicionado en un determinado campo???
Espero que me puedan ayudar, saludos a todos...

f0kylm  :lightsabre:

SaLeGi

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Responder A Presion De Teclado
« Respuesta #1 en: Martes 28 de Diciembre de 2004, 21:36 »
0
Hola!!
Lo que debes hacer es lo siguiente:

string v_columna
v_columna = cdw_datos.getcolumnname()

if isnull(v_columna) then return

if v_columna = 'nombre de la columna ' then
  If Key = KeyF1! Then
     Open(w_dependencia)
   End If
end if

jbermudez

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Responder A Presion De Teclado
« Respuesta #2 en: Lunes 25 de Abril de 2005, 17:31 »
0
Hola, mira yo para hacer eso tuve que hacer  un par de cosas.


Disparas el siguiente codigo cuando la columna actual sea la deseasa

If  en el datawindow agregarle el evento kewydown

Dentro de este evento ,el codigo es el siguiente

PowerObject lpo_object
window lw_activa

If dw_Employee.GetColumnName() = '??' then
IF KEY = KEYF1! THEN
   lpo_object = This
   DO UNTIL lpo_object.Typeof() = window!
     lpo_object = lpo_object.GetParent()
       IF lpo_object.Typeof() = window! then
      lw_activa = lpo_object
      lw_activa.Event key(key,keyflags)
        end if
   LOOP
END IF

End if



Esto pasa porque cuando oprimes el F1  el focus esta en el datawindow y al tener programación en ese punto no dispara nada.

Y despues dentro del evento key de la ventana puse que abriera la otra ventana
por ejemplo
IF key = KeyF3! THEN
   open (wc_clientes)
End if