Nun weiter im Programm, als nächstes ist die Zeile sl.Delete(Index); dran. Falls der Index zu hoch ist, wird es auch hier eine Fehlermeldung geben. Und das soll nicht sein. Eine Meldung ist ok, zwei zuviel.
Das Erste ist doch eine
Exception und keine "Meldung", also kommt er da beim Zweiten garnicht mehr an?
Delphi-Quellcode:
begin
Result := nil; // Nutzlos, da Result gleich wieder überschrieben wird.
Result := sl.Objects[Index]; // bei einer Execptiopn wird Result zwar nicht überschrieben, aber dann werden die nächsten Zeilen eh nicht ausgeführt
if Result <> nil then // Wenn es den Index zwar gibt, aber in Objekt wirklich NIL drin steht, dann wird natürlich nicht gelöscht.
sl.Delete(Index);