Array Property, TList, TStringList o TCollection, etc. (Delphi Win32)

Estoy desarrollando varios componentes, y regularmente me encuentro con la necesidad de tener una propiedad que tenga una relación de "uno a muchos", miembro de componente a propiedad. Los componentes son a menudo componentes visuales, pero no siempre, y a veces deben registrarse con el IDE (es decir, usar el Inspector de propiedades), pero no siempre. No estoy seguro de qué ruta tomar al configurar estas propiedades: usar una propiedad de matriz, un TList, un TStringList, una TCollection o algo completamente diferente (tal vez una nueva clase que herede de uno de esos).

Cuáles son las "mejores prácticas" / pautas para utilizar cuándo / dónde?

Respuestas a la pregunta(2)

Su respuesta a la pregunta