Hola granodetoro.
Aunque el C++ no es mi fuerte, intentá con este código que acabo de probar y no permite abrir el segundo form más de una vez:
Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for(int i = MDIChildCount-1; i >= 0; i--)
if(MDIChildren[i]->Name == "Form2"){
MDIChildren[i]->BringToFront();
return;
};
Application->CreateForm(__classid(TForm2), &Form2);
}
Tendrías que sacar 'Form2' (o como se llame tu segundo form ) de: Proyect->Options->Forms->'Auto-create forms'
Y también es buena idea agregar en el evento OnClose del segundo form:
Código:
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
Action= caFree;
}
Sin lugar a dudas algún compañero experto en C++ te sugiera algún modo más elegante y eficiente de realizarlo, pero por ahora...
Un saludo.
