Criando ou Destruindo Múltiplos Controles em Tempo de Execução

Se sua aplicação requer criar (ou destruir) um grande número de controles dinamicamente, é recomendado chamar SuspendLayouts() antes de prosseguir para criá-los.

circle-exclamation

Exemplo:

Delphi / Pascal
SuspendLayouts;

try
  for I := 1 to 20 do
  begin
    B := TUniDBGrid.Create(Self); // criar 20 grids dinamicamente
    B.DataSource := DataSource1;
    B.Parent := UniContainerPanel1;
    ...
  end;
finally
  ResumeLayouts;
end;

Chamar SuspendLayouts() é especialmente útil quando você está inserindo novos controles em um Form ou Frame já criado e renderizado.