如何自定义StringGrid中的对齐方式为居中 & 如何动态改变单个Cell的背景色和字体颜色?

CyberUFO 2001-08-12 10:51:53
我想可以用自己绘制的方法(Delphi中),但我BCB刚入门,不知BCB中如何实现?
恳请众位相助!
26 是我目前的给分上限,如觉得分太少,可以再加!
...全文
223 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangcfei 2001-09-23
  • 打赏
  • 举报
回复
你可以在STRINGGRID的ONDRAWCELL的事件中定义
DrawText(StringGrid1.Canvas.Handle,Pchar(stringgrid1.Cells[0, 1]), -1,
Rect,DT_RIGHT);
你就可以将STRINGGRID1.cells[0,1]的内容右对齐了。
如果有问题,你再提
tombyron 2001-08-22
  • 打赏
  • 举报
回复
呵呵

这是我原来的编的程序中的一段代码,其中CellRect()用来获取选中的Cell的坐标
该段代码实现 选中的Cell颜色改变

procedure TMain_frm.FillFocuText;
var MRect0,MRect1:TRect;
begin
With StringSGrid do
begin
MRect0:=CellRect(0,TempInt);
Canvas.Font.Color:=Font.Color;
Canvas.Brush.Color:=Color;
Canvas.TextRect(MRect0, MRect0.Left+2, MRect0.Top+2, Cells[0,TempInt]);
//删除上一次点击时留下的颜色

MRect0:=CellRect(0,Row);
Canvas.Font.Color:=ClWhite;
Canvas.Brush.Color:=ClNavy;
Canvas.TextRect(MRect0, MRect0.Left+2, MRect0.Top+2, Cells[0,Row]);
//给这次选中的行着色

TempInt:=StringGrid.Row; //记录这一次选中的行数,以便下次使用
end;
end;
CyberUFO 2001-08-12
  • 打赏
  • 举报
回复
Thx Chxis!
Chxis 2001-08-12
  • 打赏
  • 举报
回复
问了N次了,
搜一下StringGrid可一得到答案

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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