Me he dado cuenta que el ejemplo es para el cambio de tamaño del formulario y no de un panel como pedías, dejo el ejemplo anterior y añado otro con una pequeña modificación que creo que puede servir para lo que preguntas.
Código Delphi
[-]
procedure TForm1.Panel1Resize(Sender: TObject);
var
nAnchoCols:Integer;
nAnchoGrid:Integer;
nCols:integer;
nSobra:Integer;
nAumento:Integer;
i:Integer;
begin
DbGrid1.Width:=Panel1.Width - 100;
nAnchoGrid:=DbGrid1.Width;
nAnchoCols:=0;
For i:=0 to Dbgrid1.FieldCount -1 do
begin
nAnchoCols:=nAnchocols + DbGrid1.Columns[i].Width;
end;
nCols:=DbGrid1.FieldCount;
nSobra:=nAnchoGrid - nAnchoCols;
nAumento:=nSobra Div nCols - 7;
For i:=0 to Dbgrid1.FieldCount -1 do
begin
DbGrid1.Columns[i].Width:=DbGrid1.Columns[i].Width + nAumento;
end;
end;
Un Saludo.