Vale. Parte del problema lo he solucionado. Simplemente se me había olvidado crear el nuevo TMenuItem.
Sin embargo, me sigue creando el submenú en la opción anterior a la que me interesa:
Código:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TMenuItem *mItem0 = new TMenuItem(this);
TMenuItem *mItem1 = new TMenuItem(this);
for (int nItem = 0; nItem < MainMenu1->Items->Count; nItem ++)
{
mItem0 = (TMenuItem *)this->Components[nItem];
if (StringReplace(MainMenu1->Items->Items[nItem]->Caption, "&", "", TReplaceFlags() << rfReplaceAll) == "Opción 8")
{
mItem1 = new TMenuItem(mItem0);
mItem0->Add(mItem1);
mItem1->Caption = "Prueba 1";
mItem1 = new TMenuItem(mItem0);
mItem0->Add(mItem1);
mItem1->Caption = "Prueba 2";
mItem1 = new TMenuItem(mItem0);
mItem0->Add(mItem1);
mItem1->Caption = "Prueba 3";
break;
}
}
}
Ahora no me da el error, pero sigue colgando el submenú de Opción 7. El primer elemento del menú ¿no es el ítem 0?