Kann mich den Vorrednern nur anschliessen. Habe folgendes in XE3 kopmpiliert und da läuft alles wie es soll.
Code:
procedure TForm1.FormCreate(Sender: TObject);
var
SL_SUB: TStringList;
Anzahl: Integer;
I: Integer;
begin
{$O-}
Anzahl := 10;
SL_SUB := TStringList.Create;
for I := 0 to Anzahl do
begin
SL_SUB.Add(IntToStr(I));
end;
ShowMessage(SL_SUB.Strings[0]); // In der Watchlist wird mir hier der korrekte Wert '1' angeziegt
SL_SUB.Clear;
SL_SUB.Free;
end;
Allerdings solltest du solche Codekonstrukte immer in einen Try/Finally Block packen. Also so:
Code:
procedure TForm1.FormCreate(Sender: TObject);
var
SL_SUB: TStringList;
Anzahl: Integer;
I: Integer;
begin
{$O-}
Anzahl := 10;
SL_SUB := TStringList.Create;
try
for I := 0 to Anzahl do
begin
SL_SUB.Add(IntToStr(I));
end;
ShowMessage(SL_SUB.Strings[0]);
SL_SUB.Clear;
finally
SL_SUB.Free;
end;
end;