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.