procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var index: integer; begin index := ARow * StringGrid1.ColCount + ACol; with Sender as TStringGrid do begin if (ARow Mod 2) = 0 then Canvas.Brush.Color := clBackGround; Canvas.FillRect(Rect); if gdFocused in State then Canvas.DrawFocusRect(Rect); end;end;
写自画事件(OnDrawCell事件): procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var S:String; begin S:=StringGrid1.Cells[ACol,ARow]; if ARow mod 2=0 then begin StringGrid1.Canvas.Brush.Color:=clRed; StringGrid1.Canvas.Pen.Color :=clRed; end else begin StringGrid1.Canvas.Brush.Color:=clLime; StringGrid1.Canvas.Pen.Color :=clLime; end; StringGrid1.Canvas.FillRect(Rect); DrawText(StringGrid1.Canvas.Handle, PChar(S), Length(S), Rect, DT_Center or DT_VCenter or DT_SingleLine); end;procedure TForm1.FormCreate(Sender: TObject); var i,j:integer; begin for i:=0 to 4 do for j:=0 to 4 do StringGrid1.Cells[i,j]:=IntToStr(Random(122)); end;
Rect: TRect; State: TGridDrawState);
var
index: integer;
begin
index := ARow * StringGrid1.ColCount + ACol;
with Sender as TStringGrid do
begin
if (ARow Mod 2) = 0 then
Canvas.Brush.Color := clBackGround;
Canvas.FillRect(Rect); if gdFocused in State then
Canvas.DrawFocusRect(Rect);
end;end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
S:String;
begin
S:=StringGrid1.Cells[ACol,ARow];
if ARow mod 2=0 then
begin
StringGrid1.Canvas.Brush.Color:=clRed;
StringGrid1.Canvas.Pen.Color :=clRed;
end
else
begin
StringGrid1.Canvas.Brush.Color:=clLime;
StringGrid1.Canvas.Pen.Color :=clLime;
end;
StringGrid1.Canvas.FillRect(Rect);
DrawText(StringGrid1.Canvas.Handle,
PChar(S),
Length(S),
Rect,
DT_Center or DT_VCenter or DT_SingleLine);
end;procedure TForm1.FormCreate(Sender: TObject);
var
i,j:integer;
begin
for i:=0 to 4 do
for j:=0 to 4 do
StringGrid1.Cells[i,j]:=IntToStr(Random(122));
end;