删除一行:
procedure TMainForm.DeleteRow(row: integer);
var
  k, m: integer;
begin
  if row > 0 then begin
    with stringgrid1 do 
      begin
         for k := row to RowCount - 1 do
            for m := 1 to 5 do
               cells[m, k] := cells[m, k + 1];
         for m := 1 to 5 do
             cells[m, rowcount] :='';
         RowCount := RowCount - 1;
      end;
  end;
end;

解决方案 »

  1.   

    cg1120兄,上面我引用的代码以前好象是你提供的吧,其实你的现在这种移挪的方法我也想到了。大家再看看有没有更优的写法,没有MovRow/MovCol真是不爽。如果没有更好的,分就给你了。:)
      

  2.   

    呵.MOVEROW怎么就不能用????
    当然,你不能直接用它而已.
    你贴出的那个继承自TStringGrid的做法其实已经相当不错了.如果你不习惯,想在设计期用TSTringGrid,也行啊.
    假设你FORM上的TstringGrid控件叫StringGrid1
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      Cells:TExCell;
    begin
      Cells:=TExCell(StringGrid1);
      Cells.DeleteRow(1);
    end;
     
      

  3.   

    对于TStringGrid的自定义子类的使用,还是有些不懂。不过,谢谢各位。结贴了。