Grundsätzlich kann man so machen allerdings würde man eine geeignete Basisklasse wählen. In diesem Fall würde sich ein TPanel o.ä. anbieten.
Im Konstruktor musst Du Deine Subkomponenten erzeugen Wenn Du Dein Objekt als Owner nimmst, kannst Du auf einen Destruktor für die Freigabe der Komponenten verzichten.
Du meinst, das wenn ich ein TPanel als Basisklasse wähle, und darin meine Images uns Labels platziere, werden diese alle automatisch durch den Destruktor des TPanel wieder freigegeben?
Bei FIcon := TImage.Create();
übergebe ich da am besten "self"?