Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
5.716 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Daten in einem DBGrid anders anzeigen (nicht TField.OnGetText)

  Alt 30. Aug 2016, 18:33
Ganz genauso (nur ohne das with ) habe ich es auch gemacht, wieder etwas gelernt


Delphi-Quellcode:
   TDBGridHelper = class helper for TDBGrid
      public procedure writeText(const inRect: TRect; const text: String);
   end;

procedure TForm1.DBGrid1DrawColumnCell(
   Sender: TObject;
   const Rect: TRect;
   DataCol: Integer;
   Column: TColumn;
   State: TGridDrawState
);
var
   displayText: String;
begin
   if (Column.FieldName='someFancyField') and Assigned(Column.Field) then begin
      displayText := '***' + Column.Field.DisplayText + '***';
      (Sender as TDBGrid).writeText(Rect, displayText);
   end else
      (Sender as TDBGrid).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

procedure TDBGridHelper.writeText(
   const inRect: TRect;
   const text: String
);
const
   someMagicOffsetPx = 2; // Siehe TDBGrid::DefaultDrawColumnCell
begin
   Canvas.FillRect(inRect);
   Canvas.TextRect(
      inRect,
      inRect.Left + someMagicOffsetPx,
      inRect.Top + someMagicOffsetPx,
      text
   );
end;
  Mit Zitat antworten Zitat