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 RichEdit
 
CAPÍTULOS

SECCIONES

SITIOS RECOMENDADOS

OTROS SITIOS DE LA AUTORA

En línea desde el 7 de noviembre de 2000

4.I El control RichEdit

Una de las grandes limitaciones del control TMemo, que usamos para permitir la entrada de texto por parte del usuario, es que no permite usar atributos diferentes para el texto, como tamaños o estilos, ni dispone de capacidad alguna de alineación, sangrado de párrafos, etc. Entre los controles de Windows 95 (paleta Win32) nos encontramos con uno, llamado TRichEdit, situado en la paleta de componentes con este botón: El control RichEdit de Delphi - Paleta Win32 , que en cierta manera funciona como un TMemo, con la diferencia de que permite editar texto en formato Rich Text Format, o RTF, en ql que es posible utilizar atributos en el texto, ajustar párrafos, etc.

En el inspector de objetos podremos apreciar la existencia de algunas propiedades y eventos exclusivos de este control. En la siguiente tabla se enumeran las propiedades.

NombreTipoComentario
DefAttributesTTexAttributesAtributos para el texto por defecto
HideScrollBarsBooleanOcultar las barras de desplazamiento
HideSelectionBooleanOcultar la selección actual de texto
ParagraphTParaAttributesAtributos del párrafo actual o seleccionado
PlainTextBooleanIndica si el contenido es texto normal o RTF
SelAttributesTTextAttributesAtributos del texto seleccionado

Atributos de texto

Tanto la propiedad DefAttributes, que establece los atributos por defecto para el texto, como la propiedad SelAttributes, que nos permite conocer y modificar los atributos del texto actualmente, son de tipo TTextAtributes.

Mediante las propiedades Name, Style, Size y Pitch podemos conocer y modificar los atributos generales del texto. Estas propiedades son del mismo tipo y contienen la misma información que las propiedades del mismo nombre de un objeto TFont. Mediante la propiedad Color podremos manipular el color del texto, siendo de tipo TColor.

El texto seleccionado en un TRichEdit puede estar protegido contra escritura, atributo que podemos conocer y modificar mediante la propiedad Protected del objeto TTextAttributes, de forma similar a como podemos establecer el tipo o tamaño de letra.

Atributos de párrafo

También la propiedad Paragraph es una referencia a un objeto, en este caso del tipo TParaAttributes. Mediante este objeto podemos conocer y modificar los atributos del párrafo actual o los párrafos seleccionados en un determinado momento.

El texto de un párrafo puede estar ajustado a la izquierda, centrado o ajustado a la derecha, dependiendo del valor que demos a la propiedad Alignment, que puede ser uno de estos:

ValorTipo de ajuste
taLeftJustifyIzquierda
taCenterCentrado
taRightJustifyDerecha

Un párrafo se ajusta, según la propiedad anterior, dentro de los límites actuales del control y de los márgenes que se hayan establecido. Estos márgenes se definen mediante tres propiedades: FirstIndent, LeftIndent y RightIndent, pudiendo contener cada una de ellas un número entero cuya unidad de medida es el punto de pantalla. LeftIndent establece el margen izquierdo para la primera línea del párrafo, que será el relativo a FirstIndent. Mediante la propiedad RightMargin definiremos el margen derecho.

En caso de que sea posible utilizar el tabulador en el control, porque hayamos dado el valor True a la propiedad WantTabs del TRichEdit, la propiedad TabCount del objeto TParaAttributes contendrá el número de puntos de tabulación y la propiedad Tab, que es una matriz de enteros, almacenará las posiciones correspondientes a cada uno de esos puntos.

Cada inicio de párrafo del texto que se introduce en un TRichEdit puede ir precedido de lo que normalmente se denomina un bolo, una marca que resalta el comienzo del párrafo. La existencia o no de este elemento dependerá del color que asignemos a la propiedad Numbering, que será nsNone o nsBullet, siendo éste segundo el valor a usar para activar el uso de bolos.

Salvar, cargar e imprimir texto

Al igual que el control TMemo, un TRichEdit dispone de una propiedad Lines, en la que se almacenan las líneas que actualmente contiene el control. Se ha de tener en cuenta que estas líneas no contienen sólo el texto que nosotros vemos en el control sino que, además existen una serie de secuencias o controles especiales, que son los que establecen los atributos del texto y párrafo. Si queremos tener únicamente el texto, sin los caracteres especiales, hemos de acudir a la propiedad Text del TStrings que tiene las líneas del texto. Esta propiedad es una cadena que contiene todo el texto del TRichEdit.

La propiedad Lines es un objeto TStrings, por lo que disponemos de los habituales métodos SaveToFile y LoadFromFile, que nos facilitan las operaciones de entrada y salida a archivos en disco.

Además, este control incorpora un método Print, que se encarga de enviar a la impresora el texto contenido en él. Al llamar a este método deberemos facilitar una cadena de carácteres como único parámetro, que será el título del trabajo de impresión.

Eventos de TRichEdit

Además de los eventos habituales de los controles de esta categoría, generados por el ratón, el teclado y otros elementos, el control TRichtEdit cuenta también con un evento, OnSelectionChange, que se produce cada vez que se desplaza el cursor por el contenido actual del control, o bien cuando se modifica la selección actual de texto. Esto nos da una oportunidad para obtener información acerca de los atributos del texto y el párrafo, mediante las propiedades SelAttributes y Paragraph, actualizando los indicadores, botones y, en general cualquier control cuyo estado o valor dependa de estos parámetros.

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