加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 选定的stringgrid行的正常colo(u)r是多少?

发布时间:2020-12-15 04:34:26 所属栏目:大数据 来源:网络整理
导读:我正在为字符串网格重写OnDrawCell.在某些情况下,我想在系统执行绘图时使用用于所选行的常规TColor(无OnDrawCell). 那是哪个colo(你)? clXXX? 解决方法 在Delphi 2010之前,您可以使用clHighlight颜色. 在Delphi 2010中,TStringGrid,TDrawGrid和TDBGrid组件
我正在为字符串网格重写OnDrawCell.在某些情况下,我想在系统执行绘图时使用用于所选行的常规TColor(无OnDrawCell).

那是哪个colo(你)? clXXX?

解决方法

在Delphi 2010之前,您可以使用clHighlight颜色.

在Delphi 2010中,TStringGrid,TDrawGrid和TDBGrid组件现在具有DrawingStyle属性,并且根据此值(gdsClassic,gdsGradient,gdsThemed),您必须以这种方式计算颜色.

1.for gdsClassic使用clHighlight;

2.for gdsGradient使用GradientFillCanvas方法

GradientFillCanvas(Canvas,GetShadowColor(clHighlight,45),10),LRect,gdVertical);

3.for gdsThemed调用TCustomStyleServices的DrawElement方法

StyleServices.DrawElement(Canvas.Handle,StyleServices.GetElementDetails(tgCellSelected),ARect);

在Delphi XE2(和XE3)中引入vcl样式时,必须使用与上面相同的内容,但检查当前样式是否为“自定义样式”(vcl样式)

1.for gdsGradient使用GradientFillCanvas方法以这种方式计算渐变的颜色

StyleServices.GetElementColor(StyleServices.GetElementDetails(tgGradientCellRowSelectedRight),ecGradientColor1,StartColor); //StartColor is a TColor variable
StyleServices.GetElementColor(StyleServices.GetElementDetails(tgGradientCellRowSelectedRight),ecGradientColor2,EndColor);//EndColor is a TColor variable

2.for gdsClassic

StyleServices.GetElementColor(StyleServices.GetElementDetails(tgClassicCellRowSelectedRight),ecFillColor,LColor); //LColor is a TColor variable

如果要检查VCL如何绘制选定(突出显示的)单元格/行的示例,请尝试执行TCustomGrid.DrawCellHighlight方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读