Programación General > Power Builder

 Evento Keypress De Singlelineedit

(1/1)

evmuv:
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:
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 ---  type sle_buscar from singlelineedit within w_art_listaevent ue_digitando pbm_keyupinteger x = 50integer y = 104integer width = 814integer height = 92integer taborder = 10integer textsize = -10integer weight = 400fontcharset fontcharset = ansi!fontpitch fontpitch = variable!fontfamily fontfamily = swiss!string facename = "Arial"long textcolor = 33554432textcase textcase = upper!borderstyle borderstyle = stylelowered!end type event ue_digitando;string ls_busca, ls_columnainteger li_fila,li_largo //tomamos el valor... ls_busca = trim(sle_buscar.text)li_largo=len(ls_busca) /* Tomamos la segunda columna como la de busqueda o el campo donde se desea buscar lo que se digita... */ ls_columna = dw_arlis.Describe("#1.Name") /* Aqui agregaremos a un string todo el argumento  de busqueda con los parametros... */ ls_busca = "Mid (" + ls_columna + ",1," + string(li_largo)+ " ) = '" + ls_busca + "'"  li_fila = dw_arlis.Find (ls_busca, 1, dw_arlis.rowcount()) IF li_fila > 0 THEN  //si encontro algo con ese argumento.. lo lleva a esa fila...  dw_arlis.setrow ( li_fila )  dw_arlis.ScrollToRow ( li_fila )else  //sino encontro nada con ese argumento nos lleva a la fila 1  dw_arlis.setrow (1)  dw_arlis.ScrollToRow (1)END IF end event   

evmuv:
Ok, muchas gracias, voy a ponerlo a prueba a ver como anda, GRACIAS!!

evmuv:
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:
hola evmuv, simple.

En P.B. 10.0

 es el evento pbm_keydown .

ejemplo simple y cortito para q me entiendas.

 keydown(keyenter!).

Saludos,

Navegación

[0] Índice de Mensajes

Ir a la versión completa