PDA

Ver la Versión Completa : Memo con número máximo de líneas


tonyluna36
30-05-2007, 10:27:25
Hola.

Creo que este tema se ha tocado algo, pero lo que he visto por el foro, a mi no me vale.

¿ Alguien conoce algún componente que restringa el número máximo de líneas de un memo, richedit o alguno parecido ?.

También las ideas para crear un componente serán bienvenidas.

Gracias
Salu2.

dec
30-05-2007, 10:41:40
Hola,


Creo que este tema se ha tocado algo, pero lo que he visto por el foro, a mi no me vale.


Sin decir qué has visto concretamente... poco más puede añadirse.


¿ Alguien conoce algún componente que restringa el número máximo de líneas de un memo, richedit o alguno parecido ?.


Creo que podrías hacerlo con esos mismos componentes. Usa el evento "OnChange"... por ejemplo, de modo que no permitas ingresar más texto (o líneas) que las que te sean menester. Tal vez te interese utilizar un "TListBox" también. Pero dependerá de qué sea menester, claro está.

Neftali [Germán.Estévez]
30-05-2007, 10:59:32
Si quieres hacer un componente que derive de TMemo, no creo que te sea muy complicado.
TMemo deriva de TCustomMemo y este a su vez de TCustomEdit.
Llegados a TCustomedit tienes varias opciones.
(a) Aquí aparece un método Change que posiblemente puedeas sobreescribir para capturar los cambios.
procedure Change; dynamic;
(b) También aparece el mensaje CM_TEXTCHANGED que podrás capturar y también tiene pinta de "saltar" cuando cambia el texto.
procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
(c) Aun queda por ahí una función llamada DoSetMaxLength; Esta no seque hace y es la primera vez que la veo, pero podrías investigar a ver qué hace, por que también tiene "buena pinta"
procedure DoSetMaxLength(Value: Integer); virtual;
(d) Por último está el evento OnChange que puedes capturar y redirigir, aunquie este sistema no te lo aconsejo salvo que no exista otro remedio.

Ten en cuenta cuando se escribe un texto, cuando se pega uno desde el portapapeles y cuando se asignan las propiedades Text/Lines (Add, AddStrings) por código para asegurarte de que funciona.

karlaoax
30-05-2007, 16:32:37
¿ Alguien conoce algún componente que restringa el número máximo de líneas de un memo, richedit o alguno parecido ?.

Pues de mi parte no conozco alguno, pero yo utilizo la propiedad Llamada MAXLENGHT de los componentes, como Edits, RichEdits',Memo's, etc. Es una solucion rapida