Muy interesante lo del patrón Singleton, aunque ya lo implementaba de alguna forma nunca supe que tenía un nombre. En cuanto al problema no sería más fácil un simple if? me explico:
Código:
if (!Application->FindComponent("Form2")) {
Application->CreateForm(__classid(TForm2), &Form2);
Form2->Show();
}
else {
MessageBoxA(Handle, "Ya se creo", "", MB_ICONINFORMATION);
}
FindComponent devuelve un TComponent* si ya existe Form2 y NULL si no hay ninguna instancia de Form2, ten en cuenta que tienes que liberar la memoria cuando cierres Form2 de lo contrario solo quedara oculto, y esto se hace con el siguiente código en el OnClose:
Código:
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
/**/
Action=caFree;
}
Nos vemos