我想用按钮来删除stringgrid中用鼠标选中的行,和用按钮响应焦点在stringgrid中移动。

解决方案 »

  1.   

    首先修改属性:StringGrid1->options->goRowSelect 设为True;//删除行
    procedure DeleteStringGridRow(vRow: Integer; StringGrid: TStringGrid);
    var
      i: Integer;
    begin
      if StringGrid.RowCount > vRow then
      begin
        for i := vRow to StringGrid.RowCount - vRow do
        begin
          StringGrid.Rows[i] := StringGrid.Rows[i+1];
        end;
        StringGrid.RowCount := StringGrid.RowCount - 1;
      end;
    end;//删除列
    procedure DeleteStringGridCol(vCol: Integer; StringGrid: TStringGrid);
    var
      i: Integer;
    begin
      if StringGrid.ColCount > vCol then
      begin
        for i := vCol to StringGrid.colcount - vCol do
        begin
          StringGrid.cols[i] := StringGrid.cols[i+1];
        end;
        StringGrid.colcount := StringGrid.colcount - 1;
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      vSelRow: Integer;
    begin
      //得到所选行
      vSelRow := StringGrid1.Row;
      //删除所选行
      DeleteStringGridrow(vSelRow, StringGrid1);
    end;