Hallo Niels,
du solltest PedigreeList außerhalb der rekursiven Methode instanzieren und die Erzeugung von AnimalList entfernen.
Delphi-Quellcode:
procedure XXX.InbreedCheck(subjectKey: string; PedigreeList: TStrings);
var
SireKey, DameKey: string;
begin
// SireKey := GetSireKey(subjectKey);
// DameKey := GetDameKey(subjectKey);
if PedigreeList.IndexOf(subjectKey) < 0 then
PedigreeList.Add(subjectKey);
if (SireKey <> '') then
InbreedCheck(SireKey, PedigreeList);
if (DameKey <> '') then
InbreedCheck(DameKey, PedigreeList);
end;
Grüße vom marabu