arroba más más - Programación e Internet  arroba más más - Programación e Internet
Estás en: Inicio > Cursos > Entornos de desarrollo > El entorno Delphi > Curso básico de Delphi > - El control Memo
 
CAPÍTULOS

SECCIONES

SITIOS RECOMENDADOS

OTROS SITIOS DE LA AUTORA

En línea desde el 7 de noviembre de 2000

3.III. El control Memo

Las posibilidades del control Edit a veces no son suficientes para cubrir todas las necesidades de entrada de datos, especialmente cuando lo que se solicita al ususario del programa es un texto que puede ser más o menos extenso, ya que dicho control sólo facilita la edición de una línea.

Para dar cabida a estas necesidades, existe el control llamado Memo, cuyo botón en la paleta de componentes es El control Memo de Delphi - Paleta estándar Podemos tratar este control de forma casi idéntica a un control Edit, con la diferencia de que es posible trabajar con una mayor extensión de texto, que puede estar distribuido en múltiples líneas.

Contenido del Control

El texto existente en un control Memo se estructura en múltiples cadenas, que son almacenadas en la propiedad Lines. Es posible dar un valor inicial a un control de este tipo, utilizando para ello el editor de cadenas de Delphi.

También puede cargarse dentro del campo Memo el contenido de un archivo de texto, así como salvar el texto actual del control a un archivo.

En tiempo de ejecución podemos usar la propiedad Lines como si se tratase de una matriz, en la que cada uno de los elementos corresponde a una línea de texto.

En realidad, la propiedad Lines es un objeto de tipo TStrings, que por lo tanto cuenta con sus propios métodos y propiedades. Para conocer el número de líneas que existen actualmente en el control, no tenemos más que consultar el valor de la propiedad Count. A partir de este dato no tendremos problemas en acceder a cada una de las líneas, teniendo en cuenta que la primera tiene como índice de elemento el cero.

Podemos añadir una línea al final del contenido actual mediante el método Add de la propiedad Lines, que tomará como parámetro la cadena de caracteres a añadir. Si no queremos añadirla al final sino insertarla en una cierta posición, entonces usaremos el método Insert, al que indicaremos como primer parámetro la posición en que se ha de insertar la cadena que se pasa como segundo parámetro.

Para eliminar una de las líneas utilizaremos el método Delete, al que indicaremos el índice correspondiente a la línea a borrar. También puede moverse una determinada línea de una posición a otra, indicando en el método Move el índice actual de la línea y el nuevo índice que queremos asignar. El método Exchange es similar al anterior, tomando como parámetros dos índices, pero en este caso lo que se hace es intercambiar la posición de las dos cadenas de texto.

El contenido de un control Memo puede ser tomado de un archivo de texto, utilizando el método LoadFromFile, de la propiedad Lines, que nos permitirá salvar el contenido actual del control en un archivo. También podemos guardar el contenido del Memo en un archivo de texto, usando para ello el método SaveToFile de la propiedad Lines. En ambos casos sólo hay que pasar un parámetro, el nombre del archivo del que se va a leer o en el que se va a escribir.

Visualización del Texto

En principio, al introducir un texto en el control el cursor se desplazará a la línea siguiente en el mismo momento en el que lleguemos al margen derecho, dividiendo automáticamente la línea por la última palabra. Este comportamiento se debe al valor asignado a la propiedad WordWrap, que es True. Dando a esta propiedad el valor False, al llegar al margen derecho del control el contenido actual se irá desplazando hacia la izquierda, de tal forma que la línea no se dividirá, pudiendo ser tan extensa como necesitemos. Algo similar ocurre al llegar al límite inferior del control, cuando hayamos introducido tantas líneas de texto que el control aparezca lleno. Al introducir la siguiente línea, el contenido actual se desplazará hacia arriba, dando cabida a tantas cadenas como sea necesario.

Con el fin de facilitar el desplazamiento por el texto contenido en el control, podemos hacer aparecer una barra de desplazamiento vertical, una horizontal o ambas. Para ello, asignaremos uno de los siguientes valores a la propiedad ScrollBars:

ConstanteBarra de desplazamiento
ssNoneNinguna
ssHorizontalHorizontal
ssVerticalVertical
ssBothAmbas

Tabulaciones y avances de línea

Para poder introducir un tabulador en el texto de un control Memo, podemos utilizar la combinación <Control>+<Tabulador>, mientras que para avanzar a otra línea la combinación a usar será <Control> e <Intro> de forma normal, lo único que hemos de hacer es dar el valor True a las propiedades WantTabs y WantReturns. Por defecto la primera tiene el valor False y la segunda el valor True.

Autor: Lola Cárdenas Luque
Última actualización: 24 de junio de 2001
- El control Edit | - El control Button
Copyright © 2000 - 2005, Lola Cárdenas Luque - Todos los derechos reservados