NEGRITA, CURSIVA Y SUBRAYADO
Vamos a definir la función de los típicos botones de negrita, cursiva y subrayado que llevan los procesadores de texto. Comencemos con el botón de negrita:
procedure TFormulario.BNegritaClick( Sender: TObject );
begin
with RichEdit.SelAttributes do
if not ( fsBold in Style ) then
Style := Style + [fsBold]
else
Style := Style - [fsBold];
RichEdit.SetFocus;
end;
Hay que tener en cuenta que si el usuario pulsa una vez negrita y el texto no estaba en negrita entonces se aplica dicho estilo, pero si ya lo estaba entonces hay que quitarlo.
Lo mismo sería para el botón de cursiva:
procedure TFormulario.BCursivaClick( Sender: TObject );
begin
with RichEdit.SelAttributes do
if not ( fsItalic in Style ) then
Style := Style + [fsItalic]
else
Style := Style - [fsItalic];
RichEdit.SetFocus;
end;
Y para el botón de subrayado:
procedure TFormulario.BSubrayadoClick( Sender: TObject );
begin
with RichEdit.SelAttributes do
if not ( fsUnderline in Style ) then
Style := Style + [fsUnderline]
else
Style := Style - [fsUnderline];
RichEdit.SetFocus;
end;
MOSTRANDO LA POSICION ACTUAL DEL CURSOR
Una de las cosas que se agradece en todo procesador de textos es que muestre en que fila y columna estoy situado. Para ello vamos a insertar en la parte inferior del formulario una barra de estado. El componente se llama StatusBar y se encuentra en la pestaña Win32. Le vamos a poner el nombre de Estado y ponemos a True su propiedad SimplePanel.
Lo que haremos a continuación es un procedimiento que muestre la posición actual del cursor dentro del RichEdit en la barra de estado:
procedure TFormulario.MostrarPosicion;
begin
Estado.SimpleText := Format( 'Fila: %d Columna %d',
[RichEdit.CaretPos.y+1, RichEdit.CaretPos.x+1] );
end;
Este procedimiento hay que llamarlo cuando creamos el formulario:
procedure TFormulario.FormCreate( Sender: TObject );
begin
MostrarPosicion;
end;
y en el evento OnSelectionChange del RichEdit:
procedure TFormulario.RichEditSelectionChange( Sender: TObject );
begin
MostrarPosicion;
end;
Al ejecutar el programa veremos que el resultado queda más profesional (ya podían los de Microsoft ponerle esto al cutre Bloc de Notas).
DANDO FORMATO A LOS PARRAFOS DEL DOCUMENTO
Otra característica que vamos a implementar es la de alinear el párrafo actual a la izquierda, al centro y a la derecha. Para ello vamos a poner arriba tres botones llamados BIzquierda, BDerecha y BCentro, cuyos eventos serían:
procedure TFormulario.BIzquierdaClick( Sender: TObject );
begin
RichEdit.Paragraph.Alignment := taLeftJustify;
end;
procedure TFormulario.BCentroClick( Sender: TObject );
begin
RichEdit.Paragraph.Alignment := taCenter;
end;
procedure TFormulario.BDerechaClick( Sender: TObject );
begin
RichEdit.Paragraph.Alignment := taRightJustify;
end;
Otra característica que se le puede añadir a un párrafo es la de añadir un punto por la izquierda como hace Microsoft Word. Para ello vamos a añadir el botón de nombre BPunto cuyo procedimiento es:
procedure TFormulario.BPuntoClick( Sender: TObject );
begin
with RichEdit.Paragraph do
if Numbering = nsNone then
Numbering := nsBullet
else
Numbering := nsNone;
RichEdit.SetFocus;
end;
Si se pulsa una vez este botón añade un punto al párrafo y si se pulsa de nuevo lo quita.
Al párrafo actual se le pueden modificar también las propiedades:
FirstIndent -> Es el espacio en pixels por la izquierda que se le da a la primera línea
LeftIndent -> Es el espacio en pixels por la izquierda que se le da a todas las líneas
RightIndent -> Es el espacio en pixels por la derecha que se le da a todas las líneas
LAS OTRAS PROPIEDADES DEL COMPONENTE RICHEDIT
Hay otras propiedades que nos permiten personalizar nuestro editor de texto como son:
PlainTex: Si se activa esta propiedad al guardar el archivo de texto a disco no almacena las propiedades de color, fuente, etc. Se comporta como el Bloc de Notas.
SelLength: Es el número de caracteres seleccionados por el usuario.
SelStart: Es la posición en el texto donde comienza la selección.
SelText: Es el texto seleccionado.
Con esto finalizamos las características más importantes del componente RichEdit.
Pruebas realizadas en Delphi 7.
1 comentario:
me confundi cuando ponemos la barra de estado, cuando declaramos esto:
procedure TFormulario.MostrarPosicion;
begin
Estado.SimpleText := Format( 'Fila: %d Columna %d',
[RichEdit.CaretPos.y+1, RichEdit.CaretPos.x+1] );
end;
adonde declaro o pongo lo que sea el mostrarPosicion no se donde esta?
Publicar un comentario