Moin,
wenn du mit dynamischen Arrays arbeitest, dann ist das erste Element immer Null.
Also setlength(TabSheets, 1) -> TabSheets[0].????
zu deinem Beispiel...
Delphi-Quellcode:
anz_zeilen := DataSource1.DataSet.RecordCount;
SetLength(TabSheets, anz_zeilen);
for i := 1 to anz_zeilen do begin
TabSheets[i-1] := TTabSheet.Create(Bestellung.JvPageControl1);
TabSheets[i-1].Parent := Bestellung.JvPageControl1;
TabSheets[i-1].Name := 'ArtSheet'+InttoStr(i);
TabSheets[i-1].Caption := DBGrid1.Fields[i].DisplayText;
TabSheets[i-1].Tag := i-1;
TabSheets[i-1].Visible := true;
TabSheets[i-1].PageControl := Bestellung.JvPageControl1;
end;
da in deinem Beispiel anz_zeilen gar nicht verwendet wurde, habe ich es hier mal mit eingebaut (hoffe das ist so, wie du es eigentlich benutzten wolltest). Wenn das so sein sollte, dann würde ich das Array einmal setzten (vor der Schleife) und dann in der Schleife nur noch initalisieren.
MfG
Thorsten