anchor.diff:      for col := firstcol to ColumnCount-1 do
       begin
         cWidths[col] := ColumnWidth[col];
  -      r.Width := cWidths[firstcol];
  -      lastcol := col;
  +      r.Width := cWidths[col];
         if (go_SmoothScroll in FOptions) and (r.Left <= clipr.Left) then
         begin
           firstcol := col;
           if col>0 then inc (cLeft, cWidths[col-1]);
         end;
  -      if r.Left >= clipr.Right then
  +      lastcol := col;
  +      if r.Right >= clipr.Right then
           break;
         inc (r.Left, r.Width);
       end;
  +    // first/last rows...
       if (RowCount <= 0) then
       begin
         firstrow := -1;
  
positive.code:           Include(drawstate, gdFocused);
          if (row = FFocusRow) and (col = FFocusCol) then
            Include(drawstate, gdSelected);
  writeln (row, 'x', col, ' l:', r.Left, ' w:', r.Width, ' t:', r.Top, ' h:', r.Height);
          if DoDrawCellEvent(row, col, r, drawstate) then
            DrawCell(row, col, r, drawstate);
  
  
negative.code:       DrawHeader(col, r, 0);
        inc(r.Left, r.Width);
        //if r.Left >= clipr.Right then
        //  Break;  // optimization made obsolete by lastcol
      end;
      inc(r.Top, r.Height);
    end;
  