我用DBGridEh显示数据库中的内容,并且实现自画Cell,显示效果类似于此论坛,问题是当我选中其中的一条记录时,不能高亮度显示(如显示为一般的列表框的选中状态),而只是单单把字体的颜色反转了一下.这样我的背景接近于白色,字体也变为了白色,导致看都看不清选中的东西.是不是我必须对选择的东西也要自画,怎么对选择的自画,帮帮忙!
解决方案 »
- idhttp怎么完全断开连接??为什么要关掉应用程序才释放session?
- 有关OUTLOOKBARPRO控件的一些简单问题?
- 请指点:关于DBchart的问题
- 谁能把QQ验证码识别源代码翻译一下?C#/NET的,谁能用delphi简单的写下?
- 请问Delphi中如何获得CPU使用率和CPU队列长度?
- 怎样封装一个数据集成一个DataSet?
- 关于ActiveFormt一个非常简单的问题。
- 请问Delphi中应用程序的运行
- 如何处理这样的操作?
- 谁有组件:ABC For Delphi 5.0,带源码的?
- 最简单的问题,可是我不会,大家帮忙!
- dbgrid中的commandtext长度超过128该如何?
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
case DataCol of
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;
procedure TDbgridForm.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
with DBGrid1 do
begin
if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
begin
Canvas.Font.Color :=ClYellow;
Canvas.Brush.Color :=ClNavy;
end
else
begin
if DataSource1.DataSet.RecNo mod 2<>0 then
Canvas.brush.Color :=ClWhite
else
Canvas.brush.Color :=clgreen;
end;
DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;