Ver Mensaje Individual
  #2  
Antiguo 07-10-2004
Avatar de SnaKe
SnaKe SnaKe is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid (España)
Posts: 227
Reputación: 22
SnaKe Va por buen camino
Yo lo hacía de la siguiente forma:

Código Delphi [-]
procedure FListado.Negrita (var Rich : TRichEdit; Texto : string; Posicion : integer);
var
Pos : integer;
begin
// Asumimos que los RichText no tienen más de 1000 caracteres, esto se 
//puede variar
Pos := Rich.FindText(Texto, Posicion, 1000, []);
Rich.SelLength := 0;
Rich.SelStart := Pos;
Rich.SelLength := length(Texto);
Rich.SelAttributes.Style := [fsBold];
Rich.SelLength := 0;
Rich.SelAttributes.Style := [];
end;

En el informe tenemos TQRRichText enlazados con TRichEdit mediante la propiedad ParentRichEdit, en el beforePrint de la banda del TQRRichText que quieras lo que se hace es asignarle el texto que quieras (sin formato) al control TRichEdit y luego se llama a la función Negrita tantas veces como quieras.. ejemplo:

Código Delphi [-]
MiRichText.Lines.Clear;
MiRichText.Lines.Add('Esto es un ejemplo de formateado');
Negrita(MiRichText,'un ejemplo', 0);

Con esto se consigue poner negrita a las palabras "un ejemplo" que se encuentren en el texto del control MiRichText desde el origen (posicion inicial de busqueda 0). Ojo, solo lo hace para la primera ocurrencia de ese texto, si quisieras también que lo hiciese en caso de que ocurriese más adelante debes volver a llamar a la función Negrita cambiando el tercer parámetro (antes 0) por una posición de inicio de la búsqueda más avanzada.

Ten cuidado con mayúsculas y minúsculas porque la función busca el texto exacto.

Espero te sirva.

Un saludo.
__________________
Todos somos aficionados. La vida es tan corta que no da para más.
Guia de Estilos
Responder Con Cita