Das ist das Problem meiner Meinung nach.
Für die Ausgabe müsstest du das alles wieder hinüberkopieren und man hat
imho nichts gewonnen.
Also zahlen in MyListe durchlaufen lassen und dann
Listbox1.Items.InsertObject(0,IntToStr(MyListe[I].Zahl), Pointer(MyListe[I].farbe));
Da brauch ich ja wohl keine Delphi Tags ....
Edit: Puh oder vielleicht geht das auch direkt mit Pointerchen. In diesem Fall wird ja vermutlich immer etwas neues reserviert ... oder ist das auch schon ein Pointer?