DBGrid1与数据库连接,其中有多条记录,当我单击任意一条记录的一个字段的时候,使整行记录的颜色变为兰色,代码应该怎么写。
解决方案 »
- 【100分】求监听查看其他软件的键连地址的代码(类似360监视)
- 在程序里循环建立panel,闪的太厉害,有什么好方法不闪呢?
- vfp 连接paradox
- 映射网络驱动器,当机器重新启动或注销后驱动器消失,我想驱动器一直存在,可以吗?
- 怎么在Delphi2006中找不到ADO的组件页?
- 求简单的加密算法,急~~~~~~
- 怎样使DBGrid控件连续选择几条记录,比如可以按SHIFT键再单击一下???
- 使用了已初始化的指针,在运行时,出现acceess violation错误.
- 怎样把动画GIF文件转化为多个BMP图片,要求支持透明的GIF,顺便找delphi熟悉图形编程的高手(限深圳地区),留QQ联系
- 在哪儿买Delphi 6?
- 关于 Authorware7.0
- 又一个新问题,还是关于ADOQuery查询的,请大家进来!~
begin
Dbgrid1.canvas.font.color:=clred;
Dbgrid1.canvas.brush.color:=clyellow;
end;
Dbgrid1.defaultdrawcolumncell(rect,datal,column,state);
你可以查查帮助看对不对的,下面的这个函数,我有点记得不是很清楚的
file://在DbGrid的DrawColumnCell事件中编写如下代码:Case DataCol Mod 2 = 0 of
True: DbGrid1.Canvas.Brush.Color:= clBlue; file://偶数列用蓝色
False: DbGrid1.Canvas.Brush.Color:= clAqua; file://奇数列用浅绿色
End;
DbGrid1.Canvas.Pen.Mode:=pmMask;
DbGrid1.DefaultDrawColumnCell (Rect
DataCol
Column
State);2. 纵向斑马线,同时以红色突出显示当前单元格效果:以突出显示当前选中的字段。file://将上述代码修改为:
Case DataCol Mod 2 = 0 of
True: DbGrid1.Canvas.Brush.Color:= clBlue; file://偶数列用蓝色
False: DbGrid1.Canvas.Brush.Color:= clAqua; file://奇数列用浅绿色
End;
If ((State = [gdSelected]) or (State=[gdSelectedgdFocused])) then
If Not DbGrid1.SelectedRows.CurrentRowSelected then
DbGrid1.Canvas.Brush.Color:=clRed; file://当前选中单元格显示红色
DbGrid1.Canvas.Pen.Mode:=pmMask;
DbGrid1.DefaultDrawColumnCell (Rect
DataCol
Column
State);上述两种方法突出了列的显示效果。3.在数据网格中以红色突出显示当前选中的行。
设置DbGrid控件的Options属性中的dgRowSelect属性为真,Color属性为clAqua(背景色)
在DbGrid的DrawColumnCell事件中编写如下代码:if ((State = [gdSelected]) or (State=[gdSelected gdFocused])) then
DbGrid1.Canvas.Brush.color:=clRed; file://当前行以红色显示,其它行使用背景的浅绿色
DbGrid1.Canvas.pen.mode:=pmmask;
DbGrid1.DefaultDrawColumnCell (Rect
DataCol
Column
State);4.行突显的斑马线效果:既突出当前行,又区分不同的列(字段)。file://其它属性设置同3,将上述代码修改为:
if ((State = [gdSelected]) or (State=[gdSelectedgdFocused])) then
begin
Case DataCol Mod 2 = 0 of
True : DbGrid1.Canvas.Brush.color:=clRed; file://当前选中行的偶数列显示红色
False: DbGrid1.Canvas.Brush.color:=clblue; file://当前选中行的奇数列显示蓝色
end;
DbGrid1.Canvas.pen.mode:=pmmask;
DbGrid1.DefaultDrawColumnCell (Rect
DataCol
Column
State);
end;5.横向斑马线, 同时以红色突显当前行效果。file://其它属性设置同3,将上述代码修改为:
Case Table1.RecNo mod 2 = 0 of file://根据数据集的记录号进行判断
True : DbGrid1.Canvas.Brush.color:=clAqua; file://偶数行用浅绿色显示
False: DbGrid1.Canvas.Brush.color:=clblue; file://奇数行用蓝色表示
end;
if ((State = [gdSelected]) or (State=[gdSelectedgdFocused])) then file://选中行用红色显示
DbGrid1.Canvas.Brush.color:=clRed;
DbGrid1.Canvas.pen.mode:=pmMask;
DbGrid1.DefaultDrawColumnCell (Rect
DataCol
Column
State);6.双向斑马线效果:即行间用不同色区分,同时,选中行以纵向斑马线效果区分不同的列。file://其它属性设置同3,将上述代码修改为:
Case Table1.RecNo mod 2 = 0 of file://根据数据集的记录号进行判断
True : DbGrid1.Canvas.Brush.color:=clAqua; file://偶数行用浅绿色显示
False: DbGrid1.Canvas.Brush.color:= clblue; file://奇数行用蓝色表示
end;
If ((State = [gdSelected]) or (State=[gdSelectedgdFocused])) then
Case DataCol mod 2 = 0 of
True : DbGrid1.Canvas.Brush.color:=clRed; file://当前选中行的偶数列用红色
False: DbGrid1.Canvas.Brush.color:= clGreen; file://当前选中行的奇数列用绿色表示
end;
DbGrid1.Canvas.pen.mode:=pmMask;
DbGrid1.DefaultDrawColumnCell (Rect
DataCol
Column
State); 上述6种方法分别就数据网格控件的列和行的色彩进行了设置,读者可以根据自己的需要设置特效。该程序在Delphi5中测试通过。在DrawColumnCell中写代码
例子(具体实现你可以自己完成)
procedure TForm1.DBGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
DBGrid.Canvas.Font.Color := clblue;
DBGridEh1.Canvas.Brush.Color := clyellow;
DBGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;