Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿Cómo limitar la cantidad de carateres a escribir en un RichEdit? (https://www.clubdelphi.com/foros/showthread.php?t=38122)

Alcolea 04-12-2006 06:24:49

¿Cómo limitar la cantidad de carateres a escribir en un RichEdit?
 
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...

Código Delphi [-]
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
 
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...

Código Delphi [-]
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.


La franja horaria es GMT +2. Ahora son las 00:16:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi