DBGridEh选择时高亮度显示问题 Delphi

摘要:
这是我自己绘制的dbgrid函数。其中一些是根据我的实际需要设置的。您可以将其更改为查看过程frmCopyBook_ MeterCopy。SetGridColor(varAdoTable:TDataSet;varDbGrid1:TDBGrideh;constRect:TRect;DataCol:Integer;Column:TColumneh;State:TGridDrawState);b
这是我自画dbgrideh的函数,其中有些地方是根据我的实际需要设的,你可以改改看
procedureTfrmCopyBook_MeterCopy.SetGridColor(varAdoTable:TDataSet;varDbGrid1:TDBGrideh;constRect:TRect;DataCol:Integer;
Column:TColumneh;State:TGridDrawState);
begin
if(AdoTable.RecNo<>AdoTable.RecordCount+1)and
(((DataCol>=7)and(DataCol<=12))or(DataCol=20)or(DataCol=22))then
DbGrid1.Canvas.Brush.color:=$00EBE9A7;//file://偶数行用浅绿色显示
if((State=[gdSelected])or(State=[gdSelected,gdFocused]))then
caseDataColof
7,8,9,10,11,12,20,22:
begin
DbGrid1.Canvas.Brush.color:=$00FFFF;//file://当前选中行用红色
dbgrid1.Canvas.Font.Color:=clred;
end;
{False:
begin
DbGrid1.Canvas.Brush.color:=$00FFFF;
dbgrid1.Canvas.Font.Color:=clred;
end;}
end;
DbGrid1.Canvas.pen.mode:=pmCopy;
DbGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
#3得分 30
忘了说了,该过程在DBGridEh的DrawColumnCell事件中调用就可以了
procedureTDbgridForm.DBGrid1DrawColumnCell(Sender: TObject;
  constRect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  with DBGrid1 do
  begin
   if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
    beginCanvas.Font.Color :=ClYellow;
     Canvas.Brush.Color :=ClNavy;
    end
    else
    begin
      if  DataSource1.DataSet.RecNo mod 2<>0 thenCanvas.brush.Color :=ClWhite        
      elseCanvas.brush.Color :=clgreen;       
    end;
    DefaultDrawColumnCell(Rect, DataCol, Column, State); 
  end;
end;

引用:https://bbs.csdn.net/topics/30305871

免责声明:文章转载自《DBGridEh选择时高亮度显示问题 Delphi》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇在JS中使用RecordSet对象的GetRows方法HBase 健康检查工具下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Delphi XE4 TStringHelper用法详解

原文地址:DelphiXE4TStringHelper用法详解作者:天下为公 Delphi XE4的TStringHelper,对操作字符串进一步带来更多的方法,估计XE5还能继续用到。System.SysUtils.TStringHelper大小写转换:-------------------------------------------------...

Delphi中Chrome Chromium、Cef3学习笔记(五)

原文   http://blog.csdn.net/xtfnpgy/article/details/48489489   一、模拟移动鼠标 //  SetCursorPos(StrToInt(Edit1.Text),StrToInt(Edit2.Text));  //相对屏幕位置  SetCursorPos(Self.Left+chrm1.Left+s...

以Delphi Package架构的应用程序开发

■印象中的Package 在一般的AP开发时,我们知道在Delphi7.0整合环境中将Project->Options->选到Packages卷标页,Builder with runtime packages选项打勾,就会让编译出来的执行文件Size变小很多(以空白的Form1为例,编译出来的Size由367kb变成20kb),因为它把一些VC...

关于Delphi中的字符串的浅析(瓢虫大作,里面有内存错误的举例)

关于Delphi中的字符串的浅析 只是浅浅的解析下,让大家可以快速的理解字符串。 其中的所有代码均在Delphi7下测试通过。 Delphi 4,5,6,7中有字符串类型包括了: 短字符串(Short String) 长字符串(Long String) 宽字符串(Wide String) 零结尾字符串(Null-Terminated String)、P...

Delphi下使用指针的简单总结(指针的赋值,数组和指针的转换,函数指针的使用)

由于最近公司太忙,好久没有更新我的BLOG了。原来想着写写关于HOOK驱动的文章,可是最后想想好久已经没有做驱动的东西了,怕写出来有错误,于是作罢。开发游戏也有一段时间了,发现使用DELPHI来开发网络游戏不了解DELPHI下指针的使用是完全不行的。所以今天我简单总结以下我使用DELPHI指针的心得。希望对大家有所帮助。 记得在大学学习C语言的时候在谭浩强...

Delphi xe7并行编程快速入门(转)

http://blog.csdn.net/henreash/article/details/41315183 现在多数设备、计算机都有多个CPU单元,即使是手机也是多核的。但要在开发中使用多核的优势,却需要一些技巧,花费时间编写额外的代码。好了,现在可以使用Delphi做并行编程了。 在Delphi、C++ Builder和RAD Studio XE7中,...