... und ein paar Zeilen tiefer machst du einen ähnlichen Fehler:
Delphi-Quellcode:
SetLength(moglDE, Length(moglDE)+1); //1 neues Element hinzufügen
moglDE[Length(moglDE)-1] := Dreieck; //Dreieck hinzufügen
Dreieck := TDreieck.Create; // neues Dreieck für nächsten Durchlauf erzeugen
Im Anschluss an die Schleife sollte das aktuelle Dreieck dann auch wieder freigegeben werden:
Dreieck.Free;