Ok ich habe alles jetzt noch einmal bearbeitet, habe die Länge des Array's gesetzt und habe auch die Fehler mit dem was Jumpy angesprochen hat beseitigt. Nur wird nur ein Button erzeugt. die prozedure sieht jetzt so aus:
Delphi-Quellcode:
procedure TFrmUse.GenerateButton;
var i: Integer;
begin
BoxScro := TScrollBox.Create(TabAbrech);
BoxScro.Parent := TabAbrech;
BoxScro.ParentBackground := true;
BoxScro.Align := alClient;
BoxScro.BorderStyle := bsNone;
FrmOpen.CDS.First;
for i := 1 to High(Self.LBut) do begin
LBut[i] := TButton.Create(BoxScro);
LBut[i].Parent := BoxScro;
LBut[i].Left := 20 + 2*(i+1);
LBut[i].Top := 30;
if (i >= 5) then LBut[i].Top := 30 + 2*(i+1);
LBut[i].Caption := FrmOpen.CDS.FieldByName('speise').Value;
FrmOpen.CDS.Next;
end;
end;