Hallo Christian,
ich habe deinen Code etwas aufgeräumt und die Signatur verändert, damit man ihn universeller verwenden kann. Die Captions werden bei mir auch richtig gesetzt:
Delphi-Quellcode:
procedure TDemoForm.CreatePanels(n, cols, gap: Integer; pc: TWinControl);
var
i, rows: Integer;
begin
Panels.Clear;
rows := Succ(n) div cols;
while Panels.Count < n do
with TPanel(Panels[Panels.Add(TPanel.Create(self))]) do
begin
i := Pred(Panels.Count);
Parent := pc;
Caption := Format('Panel %d', [Succ(i)]);
Width := Round((pc.Width - Succ(cols) * gap) div cols);
Height := Round((pc.Height - Succ(rows) * gap) div rows);
Left := gap + (i mod cols) * (gap + Width);
Top := gap + (i div cols) * (gap + Height);
end;
end;
Freundliche Grüße