Удаление колонки в StringGrid
Материал из DRKB
Удаление колонки в StringGrid[править | править код]
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;
ID: 00600
procedure RemoveColumn(SG: TStringGrid; ColNumber: integer);
var
Column: integer;
begin
ColNumber := abs(ColNumber);
if ColNumber <= SG.ColCount then
begin
for Column := ColNumber to SG.ColCount - 2 do
begin
SG.Cols[Column].Assign(SG.Cols[Column + 1]);
SG.Colwidths[Column] := SG.Colwidths[Column + 1];
end;
SG.ColCount := SG.ColCount - 1;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
i, j: Integer;
begin
j := SG1.Row; // строка с выделением
SG1.Rows[j].Clear;
for i := j to SG1.RowCount-2 do
SG1.Rows[i].Assign(SG1.Rows[i+1]);
SG1.RowCount := SG1.RowCount-1;
end;
Source: http://delphiworld.narod.ru/
ID: 01047
type
TStringGridHack = class(TStringGrid)
public
procedure DeleteCol(ACol: Longint);
end;
var
Form1: TForm1;
implementation
procedure TStringGridHack.DeleteCol(ACol: Longint);
begin
if ACol = FixedCols then if ACol = (ColCount - 1) then
begin
Cols[ACol].Clear;
if ColCount(FixedCols + 1) then ColCount := (ColCount - 1);
end
else
begin
Cols[ACol] := Cols[ACol + 1];
DeleteCol(ACol + 1);
end;
end;
Source: http://delphiworld.narod.ru/
ID: 01048