十年

  :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

顯示DBGrid行號、改變顏色

procedure TForm1.dbgrd1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: 
Integer; Column: TColumn; State: TGridDrawState);


  
function GetRowIndex: Integer//
  var
    J               : 
Integer;
  begin
    Result :
= 1;
    
with TStringGrid(Sender) do
    begin
      
for J := 1 to VisibleRowCount do
      begin
        
if CellRect(0, J).Top = Rect.Top then
        begin
          Result :
= J;
          Break;
        
end;
      
end;
    
end;
  
end;

var
  Id                : 
Integer;
begin
  
with TDBGrid(Sender) do
  begin
    
if DataCol = 0 then
    begin
      
if DataSource.DataSet.State = DsInsert then
      begin
        
if DataSource.DataSet.Eof then
          Id:
=DataSource.DataSet.RecordCount-TStringGrid(Sender).Row+GetRowIndex+1     //
        
else
          Id :
= FirstRecNo+GetRowIndex;                    //
      
end
      
else
        Id :
= DataSource.DataSet.RecNo;  //
      Canvas.TextRect(Rect,Rect.
Left,Rect .Top,IntToSTr(Id));
    
end;
  
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  qry1.Open;
  FirstRecNo:
=qry1.RecNo-TStringGrid(dbgrd1).Row;
end;

一个过程,直接调用就可以了!

procedure ChangeDbGridColColor(ojbDbGrid:TDbGrid);
var
  i:
integer;
begin
     
for i:= 0 to ojbDbGrid.Columns.Count -1 do
   begin
      
case i mod 3 of
      
0: ojbDbGrid.Columns.Items[i].Color:=TColor($0023AF82);
      
1: ojbDbGrid.Columns.Items[i].Color:=TColor($00339CDB);
      
2: ojbDbGrid.Columns.Items[i].Color:=TColor($00C69C6D);
      
end;
   
end;
end;

posted on 2005-01-14 11:29  留不住的时光  阅读(601)  评论(0)    收藏  举报