• Jueves 18 de Abril de 2024, 22:43

Autor Tema:  Evento Keypress De Singlelineedit  (Leído 5554 veces)

evmuv

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
    • http://evmuv.iespana.es
Evento Keypress De Singlelineedit
« en: Martes 19 de Septiembre de 2006, 22:48 »
0
Saludos.
Por favor, quisiera saber que evento del control SingleLineEdit es análogo al evento KeyPress en Visual Basic.
He buscado todos los eventos pero no he encontrado ninguno parecido, bueno, muchas gracias de antemano.

jarvizu

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Evento Keypress De Singlelineedit
« Respuesta #1 en: Jueves 21 de Septiembre de 2006, 07:53 »
0
Que tal evmun...

Primero, te comento que lo siguiente es usando power 8.0.4, el build 10923, he usado poco el 10.5 creoque todavia no tiene el evento keypress implicito en el control singlelineedit, por lo cual lo tienes que crear tu mismo.

Paso 1, en el listbox de los eventos del control selecciona new event, solo rellena el textbox con el nombre el evento de preferencia identificalo con el prefijo ue_, de tal manera que quedaria algo asi ue_mievento, los demas datos losdejas tal y comoestan.

Paso 2, ahora tienes que indicar que al llamar a tu evento se disparara un evento propio del control, en tu caso el que queremos es el de keypress (bueno asi dice VB), en el caso de PB es pbm_keyDown si lo que quieres es evaluar una tecla especifica, si lo que deseas es lo que se va tecleando sin importar cual es el evento es pbm_keyUp.


Tercero ahora si pones el codigo que quieres que actue cuando se de el evento de la tecla y listo.

Te doy un ejemplo de una busqueda recursiva en una dw desde un sle.

Código: Text
  1.  
  2.  
  3. type sle_buscar from singlelineedit within w_art_lista
  4. event ue_digitando pbm_keyup
  5. integer x = 50
  6. integer y = 104
  7. integer width = 814
  8. integer height = 92
  9. integer taborder = 10
  10. integer textsize = -10
  11. integer weight = 400
  12. fontcharset fontcharset = ansi!
  13. fontpitch fontpitch = variable!
  14. fontfamily fontfamily = swiss!
  15. string facename = "Arial"
  16. long textcolor = 33554432
  17. textcase textcase = upper!
  18. borderstyle borderstyle = stylelowered!
  19. end type
  20.  
  21. event ue_digitando;string ls_busca, ls_columna
  22. integer li_fila,li_largo
  23.  
  24. //tomamos el valor...
  25.  
  26. ls_busca = trim(sle_buscar.text)
  27. li_largo=len(ls_busca)
  28.  
  29. /* Tomamos la segunda columna como la de busqueda o el campo donde se desea buscar lo que se digita... */
  30.  
  31. ls_columna = dw_arlis.Describe("#1.Name")
  32.  
  33. /* Aqui agregaremos a un string todo el argumento
  34.  de busqueda con los parametros... */
  35.  
  36. ls_busca = "Mid (" + ls_columna + ",1," + string(li_largo)+ " ) = '" + ls_busca + "'"
  37.  
  38.  
  39. li_fila = dw_arlis.Find (ls_busca, 1, dw_arlis.rowcount())
  40.  
  41. IF li_fila > 0 THEN
  42.   //si encontro algo con ese argumento.. lo lleva a esa fila...
  43.   dw_arlis.setrow ( li_fila )
  44.   dw_arlis.ScrollToRow ( li_fila )
  45. else
  46.   //sino encontro nada con ese argumento nos lleva a la fila 1
  47.   dw_arlis.setrow (1)
  48.   dw_arlis.ScrollToRow (1)
  49. END IF
  50.  
  51. end event
  52.  
  53.  
  54.  

evmuv

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
    • http://evmuv.iespana.es
Re: Evento Keypress De Singlelineedit
« Respuesta #2 en: Viernes 22 de Septiembre de 2006, 00:49 »
0
Ok, muchas gracias, voy a ponerlo a prueba a ver como anda, GRACIAS!!

evmuv

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
    • http://evmuv.iespana.es
Re: Evento Keypress De Singlelineedit
« Respuesta #3 en: Viernes 22 de Septiembre de 2006, 23:38 »
0
Saludos, tengo varias interrogantes que surgieron cuando intenté aplicar lo que me explicaste.
Primero, me dice que al crear mi nuevo evento solo tengo que ponerle el nombre, entonces el 'cuerpo', por asi decirlo, lo dejo en blanco, no escribo nada, cierto??
o el Script que me mandaste lo pongo alli, en el código del nuevo evento.
Segundo, las variables que defines nunca las usas, a no ser que le estes dando valores a los parametro del control o evento, por ejemplo:

integer x = 50
integer y = 104
integer width = 814
integer height = 92


Nunca usas ni x, ni y, ni width ni height , además en Power Builder no me deja definirlo, porque me parecen que son varibles reservadas, a no ser que las defina en un lugar en especial, creo que no especificaste donde, disculpa pero no soy experto, recien llevo un mes y medio programando en Power Builder :whistling: .

Por último, esta parte del código no la entiendo muy bien:
type sle_buscar from singlelineedit within w_art_lista
sle_buscar es el control donde se genera el evento keyDonw, o KeyUp, pero w_art_lista? es necesario esto último?

Bueno, muchas gracias por haber respondido mi mensaje anterior, espero que también puedas ayudarme ahora, muchas gracias de antemano.

larg

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Evento Keypress De Singlelineedit
« Respuesta #4 en: Martes 15 de Mayo de 2007, 06:47 »
0
hola evmuv, simple.

En P.B. 10.0

 es el evento pbm_keydown .

ejemplo simple y cortito para q me entiendas.

 keydown(keyenter!).

Saludos,