Tengo un componente TMenuItem en el que necesito, en función de unos parámetros, que en una de las opciones se cree un submenú. He estado probando esto:
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 ++)
{
if (StringReplace(MainMenu1->Items->Items[nItem]->Caption, "&", "", TReplaceFlags() << rfReplaceAll) == "Opción 8")
{
mItem0 = (TMenuItem *)this->Components[nItem];
mItem0->Add(mItem1);
mItem1->Caption = "Prueba 1";
mItem0 = (TMenuItem *)this->Components[nItem];
mItem0->Add(mItem1);
mItem1->Caption = "Prueba 2";
mItem0 = (TMenuItem *)this->Components[nItem];
mItem0->Add(mItem1);
mItem1->Caption = "Prueba 3";
break;
}
}
}
Pero al tratar de insertar la segunda opción del submenú (Prueba 2) me salta este error:
Cita:
exception class EMenuError with message 'Menu inserted twice'
|
Además ese ítem
Prueba 1 me lo inserta en la
Opción 7 del TMainMenu en vez de en la que me interesa.