Me alegro mucho que te haya servido
Aunque no influye en el funcionamiento del ejemplo, hay un detalle que se me escapó entre las pruebas y que ahora veo... debería ser:
Código Delphi
[-]
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
a,b,c: string;
p : Integer;
cv : TCanvas;
fs : TFontStyles;
begin
p := AnsiPos(FSearched, Column.Field.AsString);
if (p <> 0) and (Column.Field is TStringField) then
begin
a := Copy(Column.Field.AsString, 1, p - 1);
b := Copy(Column.Field.AsString, p, Length(FSearched));
c := Copy(Column.Field.AsString, p + Length(FSearched), MaxInt);
cv := TDBGrid(Sender).Canvas;
fs := cv.Font.Style;
cv.FillRect(Rect);
p := Rect.Left + 2;
cv.Font.Style := fs; cv.TextOut(p, Rect.Top + 2, a);
Inc(p, cv.TextWidth(a));
cv.Font.Style := [fsBold];
cv.TextOut(p, Rect.Top + 2, b);
Inc(p, cv.TextWidth(b));
cv.Font.Style := fs; cv.TextOut(p , Rect.Top + 2, c);
end;
end;
Saludos