如何stringgrid中设定满足条件的单元格的背景颜色

phylory 2006-03-11 01:33:06
如题


我想设置(1,5),(5,5) 等一些单元格为红色的背景,但是其他的不能改变,

如果我先设置里(1,1) 为红色,下一次我可以设置(1,3)为黑色,但是(1,1)还是为红色,该怎么处理啊?

我知道也许要修改onDrawCell事件,但是我处理不了,请高手帮忙了!
谢谢了
...全文
129 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
phy_song 2006-03-11
  • 打赏
  • 举报
回复
学习中,可以直接在相应位置花就行了
phylory 2006-03-11
  • 打赏
  • 举报
回复
这个我当然知道了,我在调用这个函数的时候老是提示参数不对,能不能给个调用的例子 啊

cuteant 2006-03-11
  • 打赏
  • 举报
回复
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);

你在StringGird1的OnDrawCell事件后面的空格里面双击一下就自动添加了
phylory 2006-03-11
  • 打赏
  • 举报
回复
要不就自己写个函数drawcolor(row,col:integer;colortype:integer)

怎么写啊

谢谢了,

phylory 2006-03-11
  • 打赏
  • 举报
回复
StringGrid1DrawCel函数能不能主动调用它啊,怎么调用啊,请给个例子好吗

我第一次处理类似的事情,以前没有注意过界面的处理问题

谢谢了

cuteant 2006-03-11
  • 打赏
  • 举报
回复
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
s: String;
R: TRect;
begin
with StringGrid1 do
begin
case (ARow Mod 4) of //不同行不同的背景色,4种颜色间隔
0: Canvas.Brush.Color := clGreen;
1: Canvas.Brush.Color := clRed;
2: Canvas.Brush.Color := clYellow;
3: Canvas.Brush.Color := clBlue;
end;
Canvas.FillRect(Rect);
S := Cells[ACol,ARow];
R := Rect;
DrawText(Canvas.Handle,PChar(s),Length(s),r,DT_CENTER or DT_SINGLELINE or DT_VCENTER); //文字居中
end;
end;

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧