Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Удаление колонки в TStringGrid

01.01.2007
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 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; 

Взято из https://forum.sources.ru

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;
 
https://delphiworld.narod.ru/

DelphiWorld 6.0


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;
 
https://delphiworld.narod.ru/

DelphiWorld 6.0