Код:
MenuItems[i].OnClick:=FMain.MenuItemClick;
так тоже ошибку выдаёт, но только уже при выполнении операции...
Access violation at address ... Write of address...
А в тело цикла как раз не надо, так как последний открытый пункт и является активным..