Wozu denn die TMenuItems immer neu erstellen? Es reicht doch eine TObjectList<TMenuItem> mit den aktuellen Menüeinträgen, aus der ggf. überzählige Einträge gelöscht oder neue hinzugefügt werden um die neu gebrauchte Anzahl zu erreichen. Danach hat man dann die korrekte Anzahl und braucht nur die Überschriften neu zu setzen.
Ich glaube das wäre doppelt gemoppelt, da jedes TMenuItem seine SubItems selber verwaltet (Free etc.). Aber man könnte den Ansatz trotzdem verwenden mit eben genau dieser TMenuItem eigenen Items-Liste. Brauche ich mehr erzeuge ich welche, habe ich weniger vergerge/lösche ich diese. Danach wird jedes Item angepasst (Caption/OnClick/Tag etc.)
Gruß, Chris