Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   RE HighLight 1.0 - Resalta palabras en un RichEdit (https://www.clubdelphi.com/foros/showthread.php?t=80763)

vtdeleon 28-09-2006 16:46:17

RE HighLight 1.0 - Resalta palabras en un RichEdit
 
Bien... esto consta de dos procedures... una para poner en negrita, y otra para poner en color... pronto añadire negrita-color, cursiva... etc
Aqui va la primera (Negrita)


Código Delphi [-]
//WordSetBold Procedure By Delar
  procedure WordSetBold(RichE:TRichEdit;word:string);
     var
       Text:string;
       Pos:integer;
     begin
       text := RichE.Lines.Text;
       repeat
         Pos:=ansipos(word,text);
         Riche.SelStart:=Pos-1;
         Riche.SelLength:=Length(word);
         Riche.SelAttributes.Style := [fsBold];
         if text > Chr(1) then
         begin
         text[Pos+1]:=Chr(255);
         end;
         Pos:=ansipos(word,text);
         Riche.SelStart:=Pos-1;
         Riche.SelLength:=Pos;
         Riche.SelAttributes.Style := [];
       until (Pos=0);
     end;

Y el segundo (color)


Código Delphi [-]
//WordSetColor Procedure By Delar
       procedure WordSetColor(RichE:TRichEdit;word:string;col:TColor);
     var
       Text:string;
       Pos:integer;
     begin
       text := RichE.Lines.Text;
       repeat
         Pos:=ansipos(word,text);
         Riche.SelStart:=Pos-1;
         Riche.SelLength:=Length(word);
         Riche.SelAttributes.Style := [];
         Riche.SelAttributes.Color := col;
         if text > Chr(1) then
         begin
         text[Pos+1]:=Chr(255);
         end;
         Pos:=ansipos(word,text);
         Riche.SelStart:=Pos-1;
         Riche.SelLength:=Pos;
         Riche.SelAttributes.Style := [];
         Riche.SelAttributes.Color := clBlack;
       until (Pos=0);
     end;


Como se usa:


Código Delphi [-]
//Suponiendo que el RichEdit que queremos colorear es RichEdit1
procedure TForm1.RichEdit1KeyPress(Sender: TObject; var Key: Char);
begin
WordSetBold(RichEdit1,'if');
WordSetBold(RichEdit1,'then');
WordSetColor(RichEdit1,'button_pressed',clPurple);
WordSetColor(RichEdit1,'true',clMaroon)
end;


Cada vez que se pulse una tecla, lo hace :P
No está pensado para mucho color, porque realentizaria, pero aun asi sirve.

PD: Aquí os dejo una imagen

Saludos, Delar!

[Gunman] 28-09-2006 16:46:18

?????

QMartinez 07-10-2006 19:22:29

?

vtdeleon 08-10-2006 06:11:10

Estaba haciendo una prueba.

Favor de no postear.

roman 11-10-2006 22:45:22

Una prueba de que?

vtdeleon 12-10-2006 01:15:42

Un error que produjo en la seccion de moderadores despues de agregar el truco 365.

thread=35820


La franja horaria es GMT +2. Ahora son las 00:47:08.

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