Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Color de fondo párrafo , por código (https://www.clubdelphi.com/foros/showthread.php?t=60374)

Tonio 30-09-2008 13:33:05

Color de fondo párrafo , por código
 
Muy buenas.
¿Hay forma de colorear un párrafo, el texto o el fondo, por código?
Es decir, en un texto largo, poner los distintos párrafos, cada uno de un color, siempre por código.
Richview lo hace, pero no se como se puede hacer eso.
Muchas gracias.
Un saludo.
Tonio.

DarkMan 30-09-2008 14:00:41

En un richedit existe una propiedad llamada "SelAttributes" con la que puedes alterar la fuente y otras opciones del texto seleccionado.
Para seleccionar un texto por código puedes usar las propiedades SelStart y SelLength en las que se indica el caracter de comienzo y la longitud de caracteres seleccionados, respectivamente.
Para que lo veas con un ejemplo, mete un richedit en un form nuevo y un botón:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
 RichEdit1.Text:='Hola esto es una prueba'+#13+
                 'en la que se va a alterar el color del texto';

 {Seleccionamos 'esto es una' = posicion 5}
 RichEdit1.SelStart:= Pos('esto es una', RichEdit1.Text)-1;
 RichEdit1.SelLength:= Length('esto es una');

 {Alteramos su fuente}
 RichEdit1.SelAttributes.Color:= CLBlue;
 RichEdit1.SelAttributes.Name:= 'Impact';

 {Quitamos selección}
 RichEdit1.SelLength:=0;
end;

Tonio 01-10-2008 17:50:47

Color de fondo párrafo , por código
 
Gracias DarkMan por tu respuesta, pero creo que me he expresado mal, lo que yo deseo es poner el fondo de un párrafo de un color seleccionado, todo el párrafo, no solamente las líneas, como quedan con el 'SelAttribute', que sea como cuando pones, por ejemplo: Richedit1.color := ''Red'; (creo es así)y todo el fondo richedit queda de color rojo, pero que sea solamente lo que ocupa el párrafo y sin seleccionarlo previamente, que pueda poner otro párrafo de otro color, etc.
Gracias otra vez, por la respuesta.
Un saludo.
Tonio.

DarkMan 01-10-2008 20:31:24

Para eso te recomiendo que utilices un componente de terceros llamado JVRichEdit de los componentes jedi vcl.
Este componente en la propiedad 'SelAttributes' contiene una subpropiedad llamada 'BackColor' con la que puedes especificar el color de fondo del texto.
Aqui tienes una captura del resultado, supongo que es lo que buscas:



La franja horaria es GMT +2. Ahora son las 01:17:01.

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