如何根据条件改变delphi中TcxGrid控件显示框的背景颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据条件改变delphi中TcxGrid控件显示框的背景颜色相关的知识,希望对你有一定的参考价值。

参考技术A 选中cxgrid右下角的cxGrid1DBTableView1,在属性框内找到styles->background,选择,(这个时候,生成了一个新的控件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;

语言组织不是特别好,不知道看懂不。

delphi 根据控件ID得到句柄

想调用别一个非delphi程序并在其多个Edit中输入不同参数,用SPY++查得这几个Edit的控件ID是唯一且不相同,但不知道如何通过控件ID得到对应句柄,希望大侠们帮帮忙,感激之至!

参考技术A

先用FindWindow得到窗口句柄

再用GetDlgItem 得到 该窗口中 已知控件ID的控件的句柄(控件ID用spy++或spy4win得到)


建议你去玩一下csdn上的大神ccrun 做的spy4win 比spy++可强多了 例子中就用了spy4win 自动生成 delphi 查找窗口语句 


本回答被提问者和网友采纳
参考技术B 我不能
不过该程序的控件edit的排序是固定的
你可以枚举这个窗口的所有控件
用整数变量计数
那就可以判断第几个edit就是哪一个edit

以上是关于如何根据条件改变delphi中TcxGrid控件显示框的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

delphi 根据控件ID得到句柄

TCXGRID 属性解释

delphi中的第三方控件如何安装

delphi DBgridEh多行单元格如何实现~急!!

Tcxgrid使用例子

delphi的adoconnection控件自动连接问题