Use Add method for adding item to a menu and Insert method for adding subitem to the menu.
procedure TForm1.MyPopup(Sender: TObject); begin with Sender as TMenuItem do ShowMessage(Caption); end; procedure TForm1.Button1Click(Sender: TObject); var MyItem,MySubItem1: TMenuItem; begin Inc(Num); MyItem:=TMenuItem.Create(Self); MySubItem1:=TMenuItem.Create(Self); MyItem.Caption:='Hello'+IntToStr(Num); MySubItem1.Caption:='Good Bye'+IntToStr(Num); MainMenu1.Items.Add(MyItem); MainMenu1.Items[0].Insert(num-1,MySubItem1); MyItem.OnClick:=MyPopUp; MySubItem1.OnClick:=MyPopUp; end;