In der ersten Schleife zählst Du von 0 bis zum berechneten Wert.
Mit diesem Wert beginnst Du die zweite Schleife. Die müsste aber beim ersten Wert hinter dem Ende der ersten Schleife beginnen.
Müsste es nicht eher so aussehen?
Delphi-Quellcode:
program Test;
var
i : Integer;
run1 : Integer;
run2 : Integer;
sl : TStringList;
begin
sl := TStringList.Create;
for i := 0 to 100 do sl.Add('');
run1 := 0;
run2 := 0;
for i := 0 to (sl.Count div 2) do Inc(run1);
for i := (run1 + 1) to sl.Count - 1 do Inc(run2);
ShowMessage('Von ' + IntToStr(0) + ' bis ' + IntToStr(run1) + #13#10 + 'Von ' + IntToStr(run1 + 1) + ' bis ' + IntToStr(sl.Count - 1));
sl.Free;
end.