procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var Rect1 : TRect; s : string; begin if (ACol =1) and (ARow = 1) then begin Rect1 := Rect; s:= 'abcde'; DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), Rect1, DT_CENTER); end end;
liangqingzhi(老之) 正解~~~稍为补充一下procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var s : string; begin if (ACol =1) and (ARow = 1) then //指定(1,1)单元格 begin s:= TStringGrid(Sender).Cells[ACol,ARow];//单元格的值TStringGrid(Sender).Canvas.Brush.Color := clRed;//设置背景为红色 TStringGrid(Sender).Canvas.FillRect(Rect);//补充这一句,否则cell中将会显示一部分旧的数据DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), Rect, DT_CENTER); end;end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); VAR s: String; R: TRect; begin R := Rect; if StringGrid1.Cells [Acol,ARow]='0' then BEGIN s:='0'; StringGrid1.Canvas.font.Color:=clLime; StringGrid1.Canvas.Brush.Color:=clred; TStringGrid(Sender).Canvas.FillRect(Rect); DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), R, DT_CENTER); END; if StringGrid1.Cells [Acol,ARow]='1' then BEGIN StringGrid1.Canvas.font.Color:=clred; StringGrid1.Canvas.Brush.Color:=clLime; TStringGrid(Sender).Canvas.FillRect(Rect); DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), R, DT_CENTER); END; StringGrid1.Canvas.pen.Color:= StringGrid1.Font.Color ; StringGrid1.canvas.fillRect(rect); StringGrid1.Canvas.textout(rect.left+1,rect.Top ,StringGrid1.cells[acol,arow]); end;這樣怎麼不行啊!!!
這樣怎麼不行啊!!!稍为补充一下procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); VAR s: String; R: TRect; begin R := Rect; if StringGrid1.Cells [Acol,ARow]='0' then BEGIN s:='0'; StringGrid1.Canvas.font.Color:=clLime; StringGrid1.Canvas.Brush.Color:=clred; TStringGrid(Sender).Canvas.FillRect(Rect); DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), R, DT_CENTER); END; if StringGrid1.Cells [Acol,ARow]='1' then BEGIN s:='1'; StringGrid1.Canvas.font.Color:=clred; StringGrid1.Canvas.Brush.Color:=clLime; TStringGrid(Sender).Canvas.FillRect(Rect); DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), R, DT_CENTER); END; StringGrid1.Canvas.pen.Color:= StringGrid1.Font.Color ; StringGrid1.canvas.fillRect(rect); StringGrid1.Canvas.textout(rect.left+1,rect.Top ,StringGrid1.cells[acol,arow]); end;
Rect: TRect; State: TGridDrawState);
var Rect1 : TRect;
s : string;
begin
if (ACol =1) and (ARow = 1) then
begin
Rect1 := Rect;
s:= 'abcde';
DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), Rect1, DT_CENTER);
end
end;
Rect: TRect; State: TGridDrawState);
var
s : string;
begin
if (ACol =1) and (ARow = 1) then //指定(1,1)单元格
begin
s:= TStringGrid(Sender).Cells[ACol,ARow];//单元格的值TStringGrid(Sender).Canvas.Brush.Color := clRed;//设置背景为红色
TStringGrid(Sender).Canvas.FillRect(Rect);//补充这一句,否则cell中将会显示一部分旧的数据DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), Rect, DT_CENTER);
end;end;
Rect: TRect; State: TGridDrawState);
VAR
s: String;
R: TRect;
begin
R := Rect;
if StringGrid1.Cells [Acol,ARow]='0' then
BEGIN
s:='0';
StringGrid1.Canvas.font.Color:=clLime;
StringGrid1.Canvas.Brush.Color:=clred;
TStringGrid(Sender).Canvas.FillRect(Rect);
DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), R, DT_CENTER);
END; if StringGrid1.Cells [Acol,ARow]='1' then
BEGIN StringGrid1.Canvas.font.Color:=clred;
StringGrid1.Canvas.Brush.Color:=clLime;
TStringGrid(Sender).Canvas.FillRect(Rect);
DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), R, DT_CENTER);
END; StringGrid1.Canvas.pen.Color:= StringGrid1.Font.Color ;
StringGrid1.canvas.fillRect(rect);
StringGrid1.Canvas.textout(rect.left+1,rect.Top ,StringGrid1.cells[acol,arow]);
end;這樣怎麼不行啊!!!
Rect: TRect; State: TGridDrawState);
VAR
s: String;
R: TRect;
begin
R := Rect;
if StringGrid1.Cells [Acol,ARow]='0' then
BEGIN
s:='0';
StringGrid1.Canvas.font.Color:=clLime;
StringGrid1.Canvas.Brush.Color:=clred;
TStringGrid(Sender).Canvas.FillRect(Rect);
DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), R, DT_CENTER);
END; if StringGrid1.Cells [Acol,ARow]='1' then
BEGIN
s:='1';
StringGrid1.Canvas.font.Color:=clred;
StringGrid1.Canvas.Brush.Color:=clLime;
TStringGrid(Sender).Canvas.FillRect(Rect);
DrawText(TStringGrid(Sender).Canvas.Handle, PChar(s), Length(s), R, DT_CENTER);
END; StringGrid1.Canvas.pen.Color:= StringGrid1.Font.Color ;
StringGrid1.canvas.fillRect(rect);
StringGrid1.Canvas.textout(rect.left+1,rect.Top ,StringGrid1.cells[acol,arow]);
end;