Как указал Том Брунберг, настройка Panel. Родитель помещает их в коллекцию элементов управления и управляет ими.
for Row := 0 to GridPanel1.RowCollection.Count - 1 do
begin
for Col := 0 to GridPanel1.ColumnCollection.Count - 1 do
begin
Panel := TPanel.Create(Self);
Panel.Parent := GridPanel1;
Panel.Caption := 'Row ' + Row.ToString + ' Col ' + Col.ToString;
end;
end;
Ваш код дает в итоге 48 элементов управления вместо 24.
form1.Caption := 'ControlCollection.Count:' + IntToStr(GridPanel1.ControlCollection.Count);