SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: gemma en Martes 26 de Julio de 2005, 14:49

Título: Posicion Del Edit
Publicado por: gemma en Martes 26 de Julio de 2005, 14:49
Hola, mi problema es el siguiente, quiero saber cuando pulso una tecla en la funcion keypress, saber que posicion es, si el la 1º o segunda, ectt .. gracias anticipadas
Título: Re: Posicion Del Edit
Publicado por: gemma en Miércoles 27 de Julio de 2005, 10:47
:( Formula la pregunta de otra manera, por si no me he explicado bien:

Tengo Edit, y quiero controlar cuando presiono alguna tecla, en el evento keypress, que posicion de tecla es en el edit, para poder poner un formato
de hora, osea si es la posicion 1 que no pueda ser superio al nº 2, si es la posicion
3 que solo pueda ser ':', lo que no se como se puede saber la posicion. Porque he probado con un MaskEdit y funciona, pero cuando pones mal la hora, da error, gracias
Título: Re: Posicion Del Edit
Publicado por: juanma en Miércoles 27 de Julio de 2005, 12:23
La posicion del cursor la puedes obtener con

nPos = Edit1->SelStart;

Ten en cuenta que la posicion es antes de tratar la pulsacion es decir la primera vez obtendras un 0.

Quizas te sea mas comodo programar el evento OnKeyUp
Título: Re: Posicion Del Edit
Publicado por: gemma en Miércoles 27 de Julio de 2005, 14:06
Gracias he probado y me funciona, pero quisiera saber que difencia hay entre el
evento keypress  y onkeyup.
Título: Re: Posicion Del Edit
Publicado por: juanma en Viernes 29 de Julio de 2005, 14:51
A 'grosso' modo, en el keypress recibes el caracter ascii pulsado y lo puedes manipular, es decir si no esta en el rango que quieres lo pudes anular (key =0) o cambiar por otro.
En este evento no aparecen las teclas de funcion ni las de edición como insert, supr... estas teclas solo las puedes detectar con los eventos keydown o keyup.

Cuando me referia al keyup es porque la posicion del cursor la consultas despues de procesar la tecla pulsada.

Saludos
Juanma
Título: Re: Posicion Del Edit
Publicado por: gemma en Lunes 1 de Agosto de 2005, 09:20
muchas gracias por tu respuesta