当前位置:主页>仓库管理软件> 列表

DBGridEH隔行显示问题

财务软件版1楼: DBGridEH中除了设置OddRowColor和EvenRowColor还需要设置哪一项才能令隔行显示不同颜色

2楼: 这应该是很简单的问题,只是我不熟练。
原来我一直很容易进行了设置。可不知道我动了哪儿了,没有变化 如管理软件开发

3楼: procedure TMainForm.dbgMainDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if ((dbgMain.DataSource.DataSet.RecNo mod 2)=0) then begin //偶数行
dbgMain.Canvas.Brush.Color := CANVAS_BRUSH_COLOR_DEFAULT; //行底色
dbgMain.Canvas.Font.Color := CANVAS_FONT_COLOR_DEFAULT; //行字色
end;
dbgMain.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

4楼: 只须在DrawColumnCell添加:
procedure TF_filesfwdj.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
{让DBGridEh1隔行显示自定义颜色}
if DBGridEh1.DataSource.DataSet.RecNo mod 2 <> 0 then


(Sender as TDBGridEh).Canvas.Brush.Color :=clInfoBk
else
(Sender as TDBGridEh).Canvas.Brush.Color :=clWhite;

(Sender as TDBGridEh).DefaultDrawColumnCell(Rect, DataCol, Column,State);
{让当前选择行显示自定义颜色}
if (Rect.Top = DBGridEh1.CellRect(DBGridEh1.Col,DBGridEh1.Row).Top) and (not (gdFocused in State) or not DBGridEh1.Focused) then
DBGridEh1.Canvas.Brush.Color :=$00FEF4E7;
DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

5楼: 是我没有说清楚吗?
我是说设置,不是编写程序段。
以上两位朋友的回答,即使是在DBGRID控件同样设置隔行显示(不同颜色)。
我最近才开始用DBGridEH,而且通过调整控件属性Odd/EvenRowColor实现过。仅需要设置,不用编写程序。现在不知道为什么这样设置之后却不能正常隔行显示不同颜色了。

6楼: OddRowColor := clRed

财务软件版7楼: 设置编辑器颜色和字体
Inplace编辑器可以设置数据单元的颜色和字体。数据单元使用OnGetCellParams 事件来控制列的颜色和字体。 Inplace 编辑器在行高>一行的高度时自动设置为多行模式并且将列的属性 WordWrap 设置为True.

8楼: DBGridEH中只需设置OddRowColor和EvenRowColor不需要设置其它选项就能隔行显示不同颜色

9楼: 以前我就 在DBGridEH中设置OddRowColor和EvenRowColor,但现在不行了。怎么回事