PDA

Ver la Versión Completa : texto con formato en richedit


voldemmor
29-08-2008, 16:42:01
Hola amigos.

Un saludo a todos y espero que esten bien.

Bueno la razon de mi mensaje.

Uso D6 en un Richedit ingreso un texto dandole el formato de un documento dado.


RE.lines.add('texto del documento')


pero lo que necesito es colocar algunas partes de este documento en negritas, subrayadas y con letra mayor.

ejemplo

texto del documento

algo asi.

he visto en los foros que se lo hace mediante una propiedad selattribute o algo asi (este momento no lo recuerdo), pero lo hacen para cambiar el formato de un testo seleccionado con el raton.

agradesco de antemano su ayuda. gracias

dec
29-08-2008, 17:40:04
Hola,

En realidad, y, si no recuerdo mal, "SelAttribute" no se refiere al texto seleccionado únicamente, como pudiera parecer por el nombre, sino que hace referencia al texto seleccionado y al "posterior". Es decir, que, si hiciéramos esto, poco más o menos:


RichEdit.SelAttribute.Font.Color := clRed;
// Lo siguente que se escriba en el RichEdit será de color rojo

RichEdit.SelAttribute.Font.Color := clBlue;
// Lo siguente que se escriba en el RichEdit será de color azul

RichEdit.SelAttribute.Font.Color := clGreen;
// Lo siguente que se escriba en el RichEdit será de color verde


Y así sucesivamente... ;)

voldemmor
29-08-2008, 23:17:17
muchas gracias dec.
Con esta peque explicacion voy a probar y monear el codigo a ver como me va.

gracias y os comentare los resultados

o seguire pidiendo ayuda si no me va tan bien :D

voldemmor
01-09-2008, 16:39:32
hola.

ya he probado con esa linea de codigo.

RichEdit.SelAttribute.Font.Color := clGreen;

pero la verdad no resulta tan bien la cosa: ise algo asi

RichEdit.SelAttribute.Font.Color := clGreen;
RichEdit.SelAttribute.Font.size := 16;
RichEdit.lines.add(`linea de texto 1`);

RichEdit.SelAttribute.Font.Color := clblack;
RichEdit.SelAttribute.Font.size := 20;
RichEdit.lines.add(`linea de texto 2`);

pero sigue con un solo formato y en negritas.

y cuando pruebo cambiar de formato no se cambia.
he tenido que retitar el componente y cambiarlo por otro nuevo(borrar de la aplicacion y poner otro).

gracias de todos modos

ezear84
27-01-2011, 19:38:46
Se que es un post antiguo, pero necesitaba hacer lo mismo y en el buscador esta pagina sale en primer lugar, y como no ha sido respuesta la cuestión aprovecho para escribir como se hace lo pedido de modo que pueda ser de utilidad a quienes lo busquen.

Para añadir lineas con formato no se puede utilizar


RichEdit.lines.add(`linea de texto 1`);


ya que añade texto plano.
Se debe hacer del siguiente modo (y se puede crear un procedimiento para hacerlo mas sencillo):


{poner un richEdit1 en el formulario y un boton en el evento onclick agregar:}
with richEdit1 do
begin
//si se quiere añadir la linea a lo ultimo poner:
SelStart := GetTextLen;
//de lo contratio usar: SelStart := 0;

//añadir una linea
SelText := 'Primera linea' + #13#10;

//añadir otra linea
SelText := 'texto con formato en richedit' + #13#10;

//comenzar a cambiar el texto
SelAttributes.Size := 13;

//negrita + rojo
SelAttributes.Style := [fsBold];
SelAttributes.Color := clRed;
SelText := 'Buena';

//cambiamos color para el proximo texto
SelAttributes.Color := clWindowText;
SelText := ' Programación ';

//italicas + azul
SelAttributes.Style := [fsItalic];
SelAttributes.Color := clBlue;
SelText := 'en Delphi';

//nueva linea
SelText := #13#10;

//texto normal otra vez
SelAttributes.Size := 8;
SelAttributes.Color := clGreen;
SelText := 'Ahora podes hacer un procedimiento...';
end;