如何根据条件改变delphi中TcxGrid控件显示框的背景颜色?
展开全部
选中cxgrid右下角的cxGrid1DBTableView1,在属性框内找到styles->background,选择<create a new style in the new responsitory>,(这个时候,生成了一个新的控件cxStyleRepository1,这个待会讲) 这个时候你发现background下面多出了几个属性,选择color就可以填写你的颜色了。这个时候cxgrid的背景色就是你填的颜色
关于新的控件cxStyleRepository1,你可以在style选项卡中里面再新增很多样式,每一个样式都可以设置颜色。那么这些颜色都可以使用了.而在 style sheets中可以设置组合样式(这些样式来自你在style中的设置)达到真正的重复使用的效果,你选择一个或者多个都行(假如我设置了一个新的样式,那么我在cxgrid中选择选cxGrid1DBTableView1,在属性框内找到styles->background->stylesheet,选择style sheets中的名字,就能将这些颜色一次性全部设置好)
【另】如果你要动态的设置某一个单元格的颜色,你可以选中cxGrid1DBTableView1,
在事件OnCustomDrawCell中写事件。假如我要第一个栏位的字符是0的这个字变成红色,我可以在事件中写:
if (AViewInfo.GridRecord.DisplayTexts[0]='0') then
begin
{这个是RGB格式表示的,你也可以写clRed,也可以用16进制写,反正随便了}
ACanvas.Font.Color:=RGB(255,0,0);
ACanvas.Font.Style:=[fsBold];//粗体
end;
语言组织不是特别好,不知道看懂不,希望对你有帮助!
关于新的控件cxStyleRepository1,你可以在style选项卡中里面再新增很多样式,每一个样式都可以设置颜色。那么这些颜色都可以使用了.而在 style sheets中可以设置组合样式(这些样式来自你在style中的设置)达到真正的重复使用的效果,你选择一个或者多个都行(假如我设置了一个新的样式,那么我在cxgrid中选择选cxGrid1DBTableView1,在属性框内找到styles->background->stylesheet,选择style sheets中的名字,就能将这些颜色一次性全部设置好)
【另】如果你要动态的设置某一个单元格的颜色,你可以选中cxGrid1DBTableView1,
在事件OnCustomDrawCell中写事件。假如我要第一个栏位的字符是0的这个字变成红色,我可以在事件中写:
if (AViewInfo.GridRecord.DisplayTexts[0]='0') then
begin
{这个是RGB格式表示的,你也可以写clRed,也可以用16进制写,反正随便了}
ACanvas.Font.Color:=RGB(255,0,0);
ACanvas.Font.Style:=[fsBold];//粗体
end;
语言组织不是特别好,不知道看懂不,希望对你有帮助!
推荐于2016-06-21
展开全部
选中cxgrid右下角的cxGrid1DBTableView1,在属性框内找到styles->background,选择<create a new style in the new responsitory>,(这个时候,生成了一个新的控件cxStyleRepository1,这个待会讲) 这个时候你发现background下面多出了几个属性,选择color就可以填写你的颜色了。这个时候cxgrid的背景色就是你填的颜色
关于新的控件cxStyleRepository1,你可以在style选项卡中里面再新增很多样式,每一个样式都可以设置颜色。那么这些颜色都可以使用了.而在 style sheets中可以设置组合样式(这些样式来自你在style中的设置)达到真正的重复使用的效果,你选择一个或者多个都行(假如我设置了一个新的样式,那么我在cxgrid中选择选cxGrid1DBTableView1,在属性框内找到styles->background->stylesheet,选择style sheets中的名字,就能将这些颜色一次性全部设置好)
【另】如果你要动态的设置某一个单元格的颜色,你可以选中cxGrid1DBTableView1,
在事件OnCustomDrawCell中写事件。假如我要第一个栏位的字符是0的这个字变成红色,我可以在事件中写:
if (AViewInfo.GridRecord.DisplayTexts[0]='0') then
begin
{这个是RGB格式表示的,你也可以写clRed,也可以用16进制写,反正随便了}
ACanvas.Font.Color:=RGB(255,0,0);
ACanvas.Font.Style:=[fsBold];//粗体
end;
语言组织不是特别好,不知道看懂不。
关于新的控件cxStyleRepository1,你可以在style选项卡中里面再新增很多样式,每一个样式都可以设置颜色。那么这些颜色都可以使用了.而在 style sheets中可以设置组合样式(这些样式来自你在style中的设置)达到真正的重复使用的效果,你选择一个或者多个都行(假如我设置了一个新的样式,那么我在cxgrid中选择选cxGrid1DBTableView1,在属性框内找到styles->background->stylesheet,选择style sheets中的名字,就能将这些颜色一次性全部设置好)
【另】如果你要动态的设置某一个单元格的颜色,你可以选中cxGrid1DBTableView1,
在事件OnCustomDrawCell中写事件。假如我要第一个栏位的字符是0的这个字变成红色,我可以在事件中写:
if (AViewInfo.GridRecord.DisplayTexts[0]='0') then
begin
{这个是RGB格式表示的,你也可以写clRed,也可以用16进制写,反正随便了}
ACanvas.Font.Color:=RGB(255,0,0);
ACanvas.Font.Style:=[fsBold];//粗体
end;
语言组织不是特别好,不知道看懂不。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是在Drawcell中写Canvas
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询