5,388
社区成员
发帖
与我相关
我的任务
分享
procedure TForm3.btn1Click(Sender: TObject);
var
ACol, ARow: Integer;
begin
Randomize;
for ACol := 0 to sg1.ColCount - 1 do
for ARow := 0 to sg1.RowCount - 1 do
begin
{ 等号后面换上你的A字段 }
sg1.Cells[ACol, ARow] := IntToStr(GetTickCount);
{ 等号后面换上你的B字段 }
sg1.Cols[ACol].Objects[ARow] := TObject(Random(2) + 1);
end;
end;
procedure TForm3.sg1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
AColor: TColor;
ARect: TRect;
begin
with TStringGrid(Sender) do
begin
case Integer(Cols[ACol].Objects[ARow]) of
1: AColor := clYellow;
2: AColor := clRed;
3: AColor := clBlue;
else AColor := Color;
end;
Canvas.Brush.Color := AColor;
Canvas.FillRect(Rect);
ARect := Rect;
DrawText(Canvas.Handle, PChar(Cells[ACol, ARow]), -1, ARECT,
DT_SINGLELINE or DT_VCENTER);
end;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if StringGrid1.Cells[ACol,ARow] = '1' then
begin
StringGrid1.Canvas.Brush.Color := clRed;
StringGrid1.Canvas.FillRect(Rect);
end
else if StringGrid1.Cells[ACol,ARow] = '2' then
begin
StringGrid1.Canvas.Brush.Color := clYellow;
StringGrid1.Canvas.FillRect(Rect);
end
else if StringGrid1.Cells[ACol,ARow] = '3' then
begin
StringGrid1.Canvas.Brush.Color := clBlue;
StringGrid1.Canvas.FillRect(Rect);
end;
end;