1、问题如上,我用如下方式解决:procedure Tformsetact.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
//突出显示当前使用的记录 {if adoquery1.FieldByName('current').value=1 then
begin
//dbgrideh1.Canvas.Font.Style := [fsBOLD];
dbgrideh1.Canvas.Font.Color := clred;
end;
DbGrideh1.DefaultDrawColumnCell (Rect,DataCol,Column,State);
上面这段代码没动静,但却是我要的.但下面这段代码是可以的.
if ((State = [gdSelected]) or (State=[gdFocused])) then
begin
DbGrideh1.Canvas.Brush.color:=clRed;//当前行以红色显示,其它行使用背景的浅绿色
DbGrideh1.DefaultDrawColumnCell (Rect,DataCol,Column,State);
end;end;
2、有没有什么简单方法得到或定位DBGRIDEH的某一行,想得到行号?
谢谢
解决方案 »
- 散分消署,20分钟后结贴
- 8月16日晚8点,Delphi面向对象开发技术语音讨论
- 对RecordSet的操作遇到一个麻烦事?
- RichViewEdit的问题。紧急,各位帮帮忙啊。
- sql中如何求和?
- 把一个Integer类型的变量转换为TObject之后,用不用释放,怎么释放?
- 求teechart for d6,d7的控件.或teechart6.0 for d6,d7的sn..有答案就给分.
- 关于设置线程优先级
- delphi中如何得到激活事件的对象???????????
- 使用Clientdataset时怎样知道SQL语句被正确执行。
- 遇到大麻烦了,救救我啊大家
- dbgrid的问题(50分问题)
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if adsMain.FieldByName('状态').AsString = '等待完成' then
dbgBill.Canvas.Font.Color := clRed;
dbgBill.DefaultDrawColumnCell(Rect, 5, Column, State);
end;
楼主
DbGrideh1.DefaultDrawColumnCell (Rect,DataCol,Column,State);
位置写的不对.2
没有办法得到行号,用第三方控件吧
const Rect: TRect; DataCol: integer; Column: TColumn;
State: TGridDrawState);
begin
inherited;
if czDM.ADOQ_Cz.FieldByName('PiZhongEn').AsInteger<0 then
DBGrid1.Canvas.font.Color := clRed;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;