如何用DBGrid实现双层颜色的网格?(20分)

  • 主题发起人 主题发起人 VeryCoolBoy
  • 开始时间 开始时间
如果你要的是班马条纹效果:
响应它的OnDrawColumnCell事件,
判断数据的数据库记录编号,如果是奇数显示颜色一,偶数显示颜色二。
也可用其它的控件如:DBGridEh等
 
给你个EX.
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
inherited;
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 Table2.RecNo mod 2 <> 0 then Canvas.Brush.Color := clWhite
else Canvas.Brush.Color := $00EAEAEA;
end;
DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end;
 
楼上的这位老兄,如果是SQL SERVER或别的大型数据库就没有RECNO哟。
 
不能信任RecNO,还是从DBGrid入手吧,TDrawGrid(DBGrid).Row,但颜色切换依然是个问
题,我想达到的效果是整行的背景都发生变化,但如果DBGrid没有置ROWSELECT好像不行哦
 
接受答案了.
 
后退
顶部