dbgrid的ONDrawColumnCell问题(20分)

  • 主题发起人 主题发起人 qlong
  • 开始时间 开始时间
Q

qlong

Unregistered / Unconfirmed
GUEST, unregistred user!
在同一窗口上有两个dbgrid,在其中的一个的OnDrawColumnCell有如下代吗
begin
with TDbgridEh(Sender) do
begin
if gdSelected in state then
Canvas.Font.Color:=clwhite
else
if DataSource.DataSet.FieldByName('单号').AsString <> '' then
begin
canvas.Brush.color:=$00C080FF;
end;
DefaultDrawColumnCell(rect,datacol,column,state);
end;
在点击第二个DBGrid时,第一个DBGrid的选中的一行的一列变成白色,怎么处理这个问题

 
都不知道吗???
 
>> Canvas.Font.Color:=clwhite
改成 Canvas.Font.Color := clBlack

另外可以参考下面的代码
procedure TForm1.DBGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
{
if Query1.FieldByName('Col1').AsString <> '' then
if (gdSelected in State) and (DBGrid1.Focused = True) then
DBGrid1.Canvas.Font.Color := clWhite
else
DBGrid1.Canvas.Font.Color := clTeal;
}
if query1.FieldByName('Col1').AsString <> '' then
dbgrid1.Canvas.Brush.Color := $00E0FFFF
else
dbgrid1.Canvas.Brush.Color := clWhite;

if gdSelected in State then
begin
dbgrid1.Canvas.Brush.Color := clNavy;
dbgrid1.Canvas.Font.Color := clWhite;
end;

dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
 
谢谢yzhshi
 
后退
顶部