DELPHI 画报表 画表头 stringgrid控件

DELPHI 画报表 画表头 stringgrid控件

procedure   TForm1.StringGrid1DrawCell(Sender:   TObject;   ACol,   ARow:    
  Integer;  
      Rect:   TRect;   State:   TGridDrawState);  
  var  
      i,   x,   y:   Integer;  
  begin  
      If   gdFixed   In   State   Then   Exit;  
      If   ARow   >   1   Then   Exit;  
   
      //   draw   row   1   with   text   from   cell   1,1   spanning   all   cells   in   the   row  
      with   sender   as   tstringgrid   do   begin  
          {extend   rect   to   include   grid   line   on   right,   if   not   last   cell    
            in   row}  
          If   aCol   <   Pred(ColCount)   Then  
              Rect.Right   :=   Rect.Right   +   GridlineWidth;  
               
          {figure   out   where   the   text   of   the   first   cell   would   start   relative  
            to   the   current   cells   rect.   }      
          y:=   Rect.Top   +   2;  
          x:=   Rect.Left   +   2;  
          for   i:=   1   to   aCol-1   do  
              x:=   x   -   ColWidths[i]   -   GridlineWidth;  
               
          {   Paint   cell   pale   yellow}      
          Canvas.Brush.Color   :=   $7FFFFF;  
          Canvas.Brush.Style   :=   bsSolid;  
          Canvas.FillRect(   Rect   );  
           
          {   Paint   text   of   cell   1,1   clipped   to   current   cell.   }  
          Canvas.TextRect(   Rect,   x,   y,   Cells[1,1]   );  
      end;  
  end;  
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  var  
      i,   k:   Integer;  
  begin  
      with   stringgrid1   do   begin  
          cells[1,   1]   :=   'A   rather   long   line   which   will   span   cells';  
          for   i:=   1   to   colcount-1   do  
              for   k:=   2   to   rowcount   -1   do  
                  cells[i,k]   :=   Format(   'Cell[%d,%d]',[i,k]);  
      end;  
  end;  

原文地址:https://www.cnblogs.com/fengju/p/6173863.html