在OnDrawColumnCell添加StringGrid1DrawColumnCell方法,,源码如下:
unit Unit3;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes,
System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Rtti,
FMX.Grid, FMX.Layouts;
type
TForm3 = class(TForm)
StringGrid1: TStringGrid;
StringColumn1: TStringColumn;
StringColumn2: TStringColumn;
StringColumn3: TStringColumn;
// procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
// Rect: TRect; State: TGridDrawState);
procedure StringGrid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas;
const Column: TColumn; const [Ref] Bounds: TRectF; const Row: Integer;
const [Ref] Value: TValue; const State: TGridDrawStates);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.fmx}
procedure TForm3.StringGrid1DrawColumnCell(Sender: TObject;
const Canvas: TCanvas; const Column: TColumn; const [Ref] Bounds: TRectF;
const Row: Integer; const [Ref] Value: TValue; const State: TGridDrawStates);
var
i, j: Word;
str: String;
begin
j := Row;
i := Column.Index;
str := Value.ToString;
if (j mod 2) = 0 then
begin
Canvas.Fill.Color := TAlphaColors.Yellow;
Canvas.FillRect(Bounds, 0, 0, AllCorners, 1, TCornerType.Round);
Canvas.Fill.Color := TAlphaColors.Yellow;
Canvas.FillText(Bounds, str, False, 100, [TFillTextFlag.RightToLeft],
TTextAlign.Center, TTextAlign.Center);
end
else
begin
Canvas.Fill.Color := Canvas.Fill.DefaultColor;
Canvas.FillRect(Bounds, 0, 0, AllCorners, 1, TCornerType.Round);
Canvas.Fill.Color := TAlphaColors.Yellow;
Canvas.FillText(Bounds, str, False, 100, [TFillTextFlag.RightToLeft],
TTextAlign.Center, TTextAlign.Center);
end;
end;
end.