Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-11-2006
Delar Delar is offline
Miembro
 
Registrado: oct 2006
Posts: 90
Poder: 19
Delar Va por buen camino
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!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 20:10:14.


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
Copyright 1996-2007 Club Delphi