PDA

Ver la Versión Completa : ¿Cómo limitar la cantidad de carateres a escribir en un RichEdit?


Alcolea
04-12-2006, 06:24:49
Hola a todos, alguien sabe como limitar la cantidad de caracteres a escribir en un RichEdit o Memo, lo que quiero es que los usuarios no puedan extenderse en la escritura más de 512 caracteres, esto lo puedo hacer con el siguiente código...

if length(RichEdit1.Text) > 512 then RichEdit1.Lines.Delete(RichEdit1.Lines.Count - 1);

...pero si copian del porta papales se puede pasar de los 512.

¿Quién me ayuda?

roman
04-12-2006, 06:27:43
¿No te serviría poner lo mismo en el evento OnChange?

// Saludos

Alcolea
04-12-2006, 06:38:03
Claro que el código que muestro está en el evento OnChange, pero si te fijas cuando copio del porta papeles nada más que me elimina la última línea... otra solución es evitar que se use el porta papeles pero tampoco se como, y la verdad no me gusta esa idea.

seoane
04-12-2006, 13:01:12
:confused: ¿Por que no usar la propiedad MaxLength?

roman
04-12-2006, 13:43:41
¡Vaya! Pues es cierto. Yo leí la pregunta y di por sentado que se buscaba una opción porque no existía esa propedad. Habré de fijarme mejor a la próxima.

// Saludos

Alcolea
05-12-2006, 03:17:55
Que fácil era y llevo dos días rompiéndome la cabeza por que esta sencillez es lo único que me está causando problemas en la aplicación que estoy de haciendo para mi tesis. De todas formas había logrado esto...

procedure TForm1.RichEdit1Change(Sender: TObject);
var
a : char;
n : integer;
begin

if length(RichEdit1.Text) >= 513 then
begin
a := RichEdit1.Text[512];
n := pos(a, RichEdit1.Text);
RichEdit2.Text := MidBStr(RichEdit1.Text, 0,512 );
RichEdit1.Clear;
RichEdit1.Text := RichEdit2.Text
end;

end;

...por si alguien siente curiosidad.

Gracias.