PDA

Ver la Versión Completa : Error con SelStart y SelLength


aquiestamos
21-05-2012, 02:19:22
Hola !!!

Es un tema tonto pero que me trae de cabeza. Estoy intentando usar las funciones SelStart y SelLength en Firemonkey y no consigo que se marque el texto. Por si era tema de calculo de longitudes en las cadenas de texto, probé de manera directa algo como esto:

edt.text := 'ABCDEFGHIJKL' ;
edt.SelStart := 3 ;
edt.SelLength := 5 ;

De forma que se tenía que haber marcado algún texto pero nada. Lo he probado en un proyecto de VCL por si estaba poniendo algo mal, pero si me funciona, así que no sé por donde puede venir el error.

Alguien tiene alguna solución? Gracias de antemano por todo !!!!

ecfisa
21-05-2012, 02:36:56
Hola.

Seguramente el TEdit no tenga el foco cuando ejecutas el código, dependiendo desde donde estés ejecutando tendrías que focalizarlo, como por ejemplo en el evento OnClick de un TButton:

procedure TForm1.Button1Click(Sender: TObject);
begin
edt.SetFocus; // <- darle el foco
edt.SelStart:= 3;
edt.SelLength:= 5;
end;


Por supuesto no es nesesario si ya lo tiene como por ejemplo en el evento OnEnter del propio Edit:

procedure TForm1.edtEnter(Sender: TObject);
begin
edt.SelStart:= 3;
edt.SelLength:= 5;
end;


Saludos.

aquiestamos
22-05-2012, 00:01:22
Buenas ecfisa, no era eso, ya lo había probado, de echo si lo pruebas en Delphi XE2 veras que no es necesario.

Es algo que no funciona igual en Firemonkey o mas bien, que yo no lo uso bien. Porque el SelLength si marca la posición correcta si le sumas 1.

Seguiré probando a ver.

aquiestamos
22-05-2012, 00:05:35
Listo ..... resulta que la propiedad es para los Edit, y yo lo tenía asociado a un ClearingEdit .

No le deis vueltas y gracias por las respuestas !!!!