从数据库中查询出200行记录,如果某行中字段A1的值等于字段A2的值,那么就将此行中的所有值标示为红色,应该怎么做?
解决方案 »
- 使用apihook,hook recv,满足某些特定条件,想实现丢弃收到的封包
- Timage的边框问题
- 我用的MDI和子窗口,怎样判断我要打开的子窗口已经打开了?因为我每点击一次,就创建一个?不知道怎么判断,大侠怎么搞?
- 菜鸟急救:弹出式菜单的使用方法!
- 关于如何用socket接收行情数据
- 如何用程序自动控制日期范围在当月或指定月中?-----在线等待ing.....
- delphi listview 分组
- 请教!本人做了一个ocx控件,里面用到了chartfx控件,请问web发布时如何把这个控件一起发布?
- 大哥们:看看它为什么不处理错误!
- 在delphi中如何得到SQL SERVER下的一个数据库中所有用户建立的表的名字?
- delphi调用SQL问题
- 如何编写???当DBGrid1中的焦点离开某一个单元格时,出现的事件?
给你一个http://www.rosipay.com/4/1355.html看对你有帮助没?
在数据网格中以红色突出显示当前选中的行。 设置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);
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if column.Index=3 then
begin
if trim(adoquery1.FieldByName('a1').AsString)=trim(adoquery1.FieldByName('a2').AsString) then
dbgrideh1.Canvas.Font.Color:=clRed
else
dbgrideh1.Canvas.Font.Color:=clGreen;
end;
DBGrideh1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;你再修改一下就差不多了
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if gdSelected in State then Exit;
if (sender as TDBGrid).DataSource.DataSet.FieldByName('A1').VALUE= (sender as TDBGrid).DataSource.DataSet.FieldByName('A2').VALUE then
(Sender as TDBGrid).Canvas.Brush.Color := clinfobk //定义背景颜色
else
(Sender as TDBGrid).Canvas.Brush.Color := RGB(191, 255, 223); //定义背景颜色
//定义网格线的颜色:
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
with (Sender as TDBGrid).Canvas do //画 cell 的边框
begin
Pen.Color := $00ff0000; //定义画笔颜色(蓝色)
MoveTo(Rect.Left, Rect.Bottom); //画笔定位
LineTo(Rect.Right, Rect.Bottom); //画蓝色的横线
Pen.Color := clbtnface; //定义画笔颜色(兰色)
MoveTo(Rect.Right, Rect.Top); //画笔定位
LineTo(Rect.Right, Rect.Bottom); //画绿色
end;
end;