Ir al contenido


Foto

¿Cómo resaltar en un memo una palabra,asignarle un color determinado?


  • Por favor identifícate para responder
7 respuestas en este tema

#1 Master23

Master23

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 230 mensajes
  • LocationSanto Domingo

Escrito 05 febrero 2011 - 06:41

Por ejemplo escribo en un buscador hecho en delphi que me busque en las palabras en el memo, por ejemplo escribo salud.
Hola personaje, espero que la salud de tu padre mejore pronto, gracias su salud creo que está mejor etc.
que me haga lo siguiente en el memo al resaltar.
Hola personaje, espero que la salud de tu padre mejore pronto, gracias su salud creo que está mejor etc. gracias de antemano, espero que me puedan ayudar.
  • 0

#2 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 05 febrero 2011 - 09:58

Hola Master23,
Para ello está el componente TRichEdit, que está diseñado para texto con formato.

Debo confesar que no lo he utilizado por lo que no te sabría guiar demasiado, espero que alguien más te sepa orientar... si puedo darme tiempo en algún momento para estudiarlo y hacer unas pruebas quizá pueda darte una mano.

Saludos,
  • 0

#3 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 06 febrero 2011 - 03:19

Este codigo lo saque de trucomania, revisa a ver si te sirve



delphi
  1. procedure TForm1.Button2Click(Sender: TObject);
  2. var
  3.     Posicion:longint;
  4.     Cadena:string;
  5. begin
  6.   Cadena:='begin';
  7.  
  8.   {Saber la posición de una cadena en un TMemo}
  9.   {Know the position of the string in the TMemo}
  10.   Posicion:=Pos(Cadena,Memo1.Text)-1;
  11.  
  12.   {Mover el Cursor (caret) hasta allí}
  13.   {Move the caret}
  14. {
  15.   with Memo1. do
  16.   begin
  17.     SelStart:=Posicion;
  18.     SelLength:=0;
  19.     SetFocus;
  20.   end;
  21.  }
  22.  
  23.   {Resaltar la cadena en el TMemo:}
  24.   {HighLight the string searched}
  25.   with Memo1 do
  26.   begin
  27.     SelStart:=Posicion;
  28.     SelLength:=Length(Cadena);
  29.     SetFocus;
  30.   end;
  31. end;


  • 0

#4 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 06 febrero 2011 - 07:21

Hola luk2009,
Pero lo que hace ese código es seleccionar la palabra encontrada en el memo. Pareciera "resaltarse" debido a que cuando uno selecciona la palabra, el texto adquiere otro color a fin de distinguirse del seleccionado.

La idea de Master23 es de darle color, es decir darle dicho formato al texto. Y eso únicamente se puede hacer con el TRichEdit, y seguramente el código no debe variar demasiado del que expones  ;) ...



delphi
  1. Posic := Pos('cadena',ret1.Lines[0]) - 2;
  2.  
  3.   ret1.SelStart := Posic;
  4.   ret1.SelLength := Length('cadena') + 1;
  5.   ret1.SelAttributes.Color := clRed;



Ret1 es un TRichEdit.

Creo que con esto te puedes dar una idea de como seguir.

Saludos,
  • 0

#5 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 06 febrero 2011 - 09:16

pues maestro, la idea era darle algo por donde comenzar. Pero si solo se puede con el richedit, el ya tiene una idea mas clara. Ademas creo que le hace falta un bucle para resaltar todas las palabras que coincidan
  • 0

#6 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 06 febrero 2011 - 12:28

Hola
Este ejemplo (de novato) es en base a los codigos de BrunoB (CD, que me encontre por ahi) yDelphius.
Como funciona:
Se coloca en el edit la palabra a buscar.
Se presiona el boton (Buscar).
Y se presentan en el richEdit las palabras que estan en el memo.
Saludos

Archivos adjuntos


  • 0

#7 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 06 febrero 2011 - 10:13

pues maestro, la idea era darle algo por donde comenzar. Pero si solo se puede con el richedit, el ya tiene una idea mas clara. Ademas creo que le hace falta un bucle para resaltar todas las palabras que coincidan

Si lo se, es que consideré mejor apuntarle directamente por el lado del TRichEdit.
En efecto, como indicas hace falta un bucle o ciclo para lograr resaltar todas las coincidencias.

Mi intención era darle el norte, luego dejar en mano de Master23 y en la de cualquier interesado seguir trazando el camino.

No he visto el ejemplo de Caral, pero seguramente si funciona.  ;)

Saludos,
  • 0

#8 GermanBH

GermanBH

    Newbie

  • Miembros
  • Pip
  • 1 mensajes

Escrito 24 noviembre 2017 - 11:29

Cual es el codigo en vb para resaltar palabras en access en un campo memo?


  • 0




IP.Board spam blocked by CleanTalk.