Ver Mensaje Individual
  #4  
Antiguo 12-12-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita