Danke für die schnellen Antworten - zur Klarheit füg ich hier das Code-Schnipsel ein:
Delphi-Quellcode:
procedure StrTest;
var
i: Integer;
aString: String;
begin
for i:=0 to 500 do begin
aString := aString + '0123456789';
end;
end;
Damit wird ein String mit insgesamt 5010 Byte gefüllt - im Debugger seh ich, dass nur die ersten 4096 richtig sind, der Rest ist anscheinend mit #0 aufgefüllt. Allerdings seh ich auch, dass an zufälligen stellen (>4096) auch Methodenbezeichnungen als Teils des Strings stehn (z.B. TForm1.OnActivate).
Ich vermute, dass da irgendwo Teile des RAMs überschrieben werden. Nur kann ich beim besten Willen nicht herausfinden, wo der Bug ist. Ich hab auch schon ein komplett neues Projekt erstellt (weil ich dachte, dass vorher irgendwo was schief läuft) - brachte aber das gleiche Ergebnis.
Vielleicht kann ja von euch wer Licht in mein Dunkel bringen...