Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   pierdo los estilo del RXRichEdit (https://www.clubdelphi.com/foros/showthread.php?t=24982)

jorodgar 08-09-2005 11:37:59

pierdo los estilo del RXRichEdit
 
Tengo el siguiente codigo y mi problema es que al hacer el stringreplace pierde el color de letra de las lineas que ya había insertado con anterioridad en el richedit :(
Alguien me dá alguna idea??? Gracias

Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 begin
   RxRichEdit1.SelAttributes.Color:=clRed;
   RxRichEdit1.Lines.add('hola esto es una prueba ');
   RxRichEdit1.SelAttributes.Color:=clblue;
   RxRichEdit1.lines.add('para www.clubdelphi.com');
   RxRichEdit1.text:=stringreplace(RxRichEdit1.text, '', '',
     [rfReplaceAll, rfIgnoreCase]);
 end;

dec 08-09-2005 12:12:15

Hola,

Echa un vistazo a este Hilo.

jorodgar 08-09-2005 12:41:32

El hilo que me comentastes, propone la siguiente solucion.
Ya habia visto esta solución con anterioridad antes de escribir
mi duda en el foro y me sucedio lo mismo :(

Código Delphi [-]
 var
   Start: Integer;
 begin
   Start := RichEdit1.FindText(FindText, 0, Length(RichEdit1.Text), []);
   if Start <> -1 then
   begin
     RichEdit1.SelStart := Start;
     RichEdit1.SelLength := Length(FindText);
     RichEdit1.SelText := ReplaceText;
   end;
 end;

jmariano 08-09-2005 13:05:05

Saludos jorodgar!

Hice la prueba con el código que publicó roman y a mi si me funcionó bien (me respetó el color). Eso sí, la prueba la hice con el RichEdit de Delphi y no con el RXRichEdit porque no lo tengo (aunque no creo que tenga que ver).

Código Delphi [-]
var
  Start: Integer;
begin
  RichEdit1.SelAttributes.Color:=clRed;
  RichEdit1.Lines.add('hola esto es una prueba');
  RichEdit1.SelAttributes.Color:=clblue;
  RichEdit1.lines.add('para www.clubdelphi.com');
  Start := RichEdit1.FindText('prueba', 0, Length(RichEdit1.Text), []);

  if Start <> -1 then
  begin
    RichEdit1.SelStart := Start;
    RichEdit1.SelLength := Length('prueba');
    RichEdit1.SelText := 'demo';
  end;
end;

(Verás que se respeta el color de la línea donde sustituyo "prueba", o por lo menos a mí me lo respeta).

jorodgar 08-09-2005 13:37:39

Con el RXRichEdit tambien funciona. :) Muchas gracias.
Seria mucho pedir que en lugar de reemplazar un texto por otro texto, fuera reemplazar un texto por una imagen?? (manteniendo los estilos)

Algo asi como :
RxRichEdit1.SelText := Image5.Picture;

Supongo que ya es mucho pedir. De todas formas gracias por vuestra ayuda. Si lo consigo os pego el código.

jorodgar 08-09-2005 13:40:31

Solucion :

Código Delphi [-]
 
 procedure TForm1.Button2Click(Sender: TObject);
 var
   Start: Integer;
 begin
   RxRichEdit1.PlainText:=false;
   RxRichEdit1.SelAttributes.Color:=clRed;
   RxRichEdit1.Lines.add('hola esto es una prueba');
   RxRichEdit1.SelAttributes.Color:=clblue;
   RxRichEdit1.lines.add('para prueba www.clubdelphi.com');
   Start := RxRichEdit1.FindText('prueba', 0, Length(RxRichEdit1.Text), []);
 
   while start <> -1 do
   begin
 
     RxRichEdit1.SelStart := Start;
     RxRichEdit1.SelLength := Length('prueba');
     Clipboard.Assign(Image5.Picture);
     RxRichEdit1.PasteFromClipboard;
 //  RxRichEdit1.SelText := 'demo'
     Start := RxRichEdit1.FindText('prueba', 0, Length(RxRichEdit1.Text), []);
   end;
 end;


La franja horaria es GMT +2. Ahora son las 00:44:52.

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