delphi7 dbgrideh 表中表颜色显示问题 请教高手

xjjsky105 2016-08-19 02:39:33



子表dbgrideh ongetcellparams事件 代码 如下
With Frm_Data.qry_FaFangdeail do
begin
DayCount:=Trunc(FieldByName('HuanDate').AsDateTime-Now);

if (DayCount=30) or (DayCount<30) then
begin
Background:=clred;
end;
end;

子表dbgrideh 颜色红色显示正常

要求对应主表dbgrideh 也显示红色。就是子表里面有红色的,主表也要直接显示红色。 怎么做???请教高手
...全文
905 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lyhoo163 2016-08-22
一、主DBGridEh1的ondrawcolumncell事件: procedure TShowOldChildFrm.DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh; AFont: TFont; var Background: TColor; State: TGridDrawState); begin if gdSelected in state then Background:=clred; end; 二、从DBGridEh2的ondrawcolumncell事件: procedure TForm1.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin DayCount:=Trunc(FieldByName('HuanDate').AsDateTime-Now); if (DayCount=30) or (DayCount<30) then Background:=clred; end; 三、从DBGridEh2的DBGridEh2CellClick事件: procedure TShowOldChildFrm.DBGridEh2CellClick(Column: TColumnEh); begin DayCount:=Trunc(FieldByName('HuanDate').AsDateTime-Now); if (DayCount=30) or (DayCount<30) then then DBGridEh1.OnGetCellParams:=DBGridEh1GetCellParams else DBGridEh1.OnGetCellParams:=Nil; end; 这样,就能达到你的要求。但是DBGridEh1的变色,必须鼠标点击DBGridEh2,才会反映。
回复
xjjsky105 2016-08-20
请教大侠赐教
回复
xjjsky105 2016-08-19
就像上面第三行应该显示红色才对,可是没有显示红色
回复
相关推荐
发帖
非技术区
创建于2007-08-02

801

社区成员

Delphi 非技术区
申请成为版主
帖子事件
创建了帖子
2016-08-19 02:39
社区公告
暂无公告