//对表格进行绘制 Procedure DrawColumnCell(DrawDbg: TDBGrid;DrawCds:TClientDataSet; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var FRect:TRect; begin //如果处于选择状态则绘制另外一种颜色 if GdSelected in State then begin exit; end; With DrawDbg do begin //判断是否为偶数行,以便相邻的行用不同的颜色绘制 if DrawCds.RecNo mod 2=0 then Canvas.Brush.Color:=ClInfoBk else //DBGStock.Canvas.Brush.Color:=Rgb(191,255,223); Canvas.Brush.Color:=$00FEF8F1; //设置表格画布画笔的颜色,采用RGB函数据设置 DefaultDrawColumnCell(Rect, DataCol, Column, State); Canvas.Pen.Color:=$00FBE1C8; Canvas.MoveTo(Rect.Left,Rect.Bottom); Canvas.LineTo(Rect.Right,Rect.Bottom); Canvas.MoveTo(Rect.Right,Rect.Top); Canvas.LineTo(Rect.Right,Rect.Bottom); Canvas.Brush.Color:=$00825320; //绘制数据区的上边框 FRect.Left:=Rect.Left-1; FRect.Right:=Rect.Right; Frect.Top:=-1; Frect.Bottom:=16; Canvas.FrameRect(FRect); //绘制数据区的左边框 FRect.Left:=-1; FRect.Right:=11; Frect.Top:=Rect.Top-1; Frect.Bottom:=Rect.Bottom; Canvas.FrameRect(FRect); //绘制数据区的表格边框 FRect.Bottom:=Rect.Bottom; FRect.Top:=Rect.Top-1; FRect.Left:=Rect.Left-1; FRect.Right:=Rect.Right; Canvas.FrameRect(FRect); //对表格进行绘制 end; end;
procedure TForm_Main.DrowColorOnCell(stringgrid:Tstringgrid;ACol, ARow: Integer; Rect: TRect); begin with stringgrid do begin if (ACol > 0) and (ARow > 0) then begin if (ARow mod 2=0) then Canvas.Brush.Color := clskyblue else Canvas.Brush.Color:=$00EBDDD3; Canvas.FillRect(Rect); Canvas.Font.Name := 'Courier New'; Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, Cells[ACol, ARow]); end; end; end;
Procedure DrawColumnCell(DrawDbg: TDBGrid;DrawCds:TClientDataSet;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
FRect:TRect;
begin
//如果处于选择状态则绘制另外一种颜色
if GdSelected in State then
begin
exit;
end;
With DrawDbg do
begin
//判断是否为偶数行,以便相邻的行用不同的颜色绘制
if DrawCds.RecNo mod 2=0 then
Canvas.Brush.Color:=ClInfoBk
else
//DBGStock.Canvas.Brush.Color:=Rgb(191,255,223);
Canvas.Brush.Color:=$00FEF8F1;
//设置表格画布画笔的颜色,采用RGB函数据设置
DefaultDrawColumnCell(Rect, DataCol, Column, State);
Canvas.Pen.Color:=$00FBE1C8;
Canvas.MoveTo(Rect.Left,Rect.Bottom);
Canvas.LineTo(Rect.Right,Rect.Bottom);
Canvas.MoveTo(Rect.Right,Rect.Top);
Canvas.LineTo(Rect.Right,Rect.Bottom);
Canvas.Brush.Color:=$00825320;
//绘制数据区的上边框
FRect.Left:=Rect.Left-1;
FRect.Right:=Rect.Right;
Frect.Top:=-1;
Frect.Bottom:=16;
Canvas.FrameRect(FRect);
//绘制数据区的左边框
FRect.Left:=-1;
FRect.Right:=11;
Frect.Top:=Rect.Top-1;
Frect.Bottom:=Rect.Bottom;
Canvas.FrameRect(FRect);
//绘制数据区的表格边框
FRect.Bottom:=Rect.Bottom;
FRect.Top:=Rect.Top-1;
FRect.Left:=Rect.Left-1;
FRect.Right:=Rect.Right;
Canvas.FrameRect(FRect);
//对表格进行绘制
end;
end;
begin
with stringgrid do
begin
if (ACol > 0) and (ARow > 0) then
begin
if (ARow mod 2=0) then
Canvas.Brush.Color := clskyblue
else
Canvas.Brush.Color:=$00EBDDD3;
Canvas.FillRect(Rect);
Canvas.Font.Name := 'Courier New';
Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, Cells[ACol, ARow]);
end;
end;
end;