StringList - Sort, add, remover coluna

Top  Previous  Next

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 = 0Or (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;