实现StringGrid的删除,插入,排序行操作

减小字体 增大字体 作者:佚名  来源:转载  发布时间:2011-02-18 12:58:47

Procedure GridRemoveColumn(StrGrid: TStringGrid; DelColumn: Integer);
  Var Column: Integer;
  begin
    If DelColumn <= StrGrid.ColCount then
    Begin
      For Column := DelColumn To StrGrid.ColCount-1 do
        StrGrid.Cols[Column-1].Assign(StrGrid.Cols[Column]);
      StrGrid.ColCount := StrGrid.ColCount-1;
    End;
  end;

//实现添加插入操作
  Procedure GridAddColumn(StrGrid: TStringGrid; NewColumn: Integer);
  Var Column: Integer;
  begin
    StrGrid.ColCount := StrGrid.ColCount+1;
    For Column := StrGrid.ColCount-1 downto NewColumn do
      StrGrid.Cols[Column].Assign(StrGrid.Cols[Column-1]);
    StrGrid.Cols[NewColumn-1].Text := '';
  end;
 
//实现排序操作
  Procedure GridSort(StrGrid: TStringGrid; NoColumn: Integer);
  Var Line, PosActual: Integer;
      Row: TStrings;
  begin
    Renglon := TStringList.Create;
    For Line := 1 to StrGrid.RowCount-1 do
    Begin
      PosActual := Line;
      Row.Assign(TStringlist(StrGrid.Rows[PosActual]));
      While True do
      Begin
        If (PosActual = 0) Or (StrToInt(Row.Strings[NoColumn-1]) >= StrToInt(StrGrid.Cells[NoColumn-1,PosActual-1])) then
        Break;
        StrGrid.Rows[PosActual] := StrGrid.Rows[PosActual-1];
        Dec(PosActual);
      End;
      If StrToInt(Row.Strings[NoColumn-1]) < StrToInt(StrGrid.Cells[NoColumn-1,PosActual]) then
        StrGrid.Rows[PosActual] := Row;
    End;
    Renglon.Free;
  end;  
来自:http://blog.csdn.net/aroc_lo/archive/2011/02/15/6185773.aspx

Tags:

作者:佚名
  • 好的评价 如果您觉得此文章好,就请您
      0%(0)
  • 差的评价 如果您觉得此文章差,就请您
      0%(0)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论