for I1 := 0 to _object.Items.Count do
begin
Hier stimmt schon das Iterieren nicht. Du startest mit 0 (was ja auch OK ist), läufst aber bis "Count". Hier muss es "Count -1" heißen.
Aber die Infos oben sollten beschreiben, was besser gemacht werden kann.