Еще пару вариантов.
1. Можно немного сократить, не указывая Items (почему - ищите в "корнях" property)
for i:=0 to List.Count-1 do
List[i].Position.Y := List[i].Position.Y+0.5;
2. Можно использовать такой вариант
var
c: TCircle;
begin
for c in List do
c.Position.Y := c.Position.Y + 0.5;
end;
Все же более правильный вариант будет такой:
with TStringList.Create do
try
Text := 'ТЕКСТ';
SaveToFile('c:\file.txt');
finally
Free;
end;
Иначе, если при каких то проблемах с файлом, Free не будет вызван и мы получим утечку.