Algo que veo es que usas new para el TIcon pero no usas delete para liberar esa memoria en ningún caso. Supongo que eso lo tengo que hacer al eliminar cada icono de la TImageList ¿Así sería?
Código PHP:
ImageList1->Delete(Index);
ListBox1->Items->Delete(index);
Por otro lado, ¿Tengo que usar el método Clear de los TListBox y los TImageList al cerrar la aplicación o ya se encarga automáticamente de liberar toda esa memoria automáticamente al cerrarse?