Statt den Rückgabewert -1 zurückzugeben, wenn der Name nicht gefunden wird, würd ich ein selbst ausgelöste
Exception bevorzugen. Ohne Dokumentation, was der Wert -1 bedeutet, kann man damit nix anfangen. Mit einer Fehlermeldung, die einem um die Ohren fliegt schon.
raise exception.Create (format('%s in TImageObjectList not found',[fName])) ;