Ver Mensaje Individual
  #3  
Antiguo 18-04-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Reputación: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Yo repasaria la variable TApplication::Components y TApplication::ComponentCount.

Para la segunda cuentión, yo lo resuelvo así:
Código:
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
   char AppName[] = "Nombre Aplicacion";
   Application->Title = "XXNombre AplicacionXX"; // Cambio momentaneamente el nombre para no encontrarma a mi mismo...
   HWND W = ::FindWindow("TApplication", AppName);  //Busco si la ventana existe...
   Application->Title = AppName;   // Recupero el verdadero nombre de la aplicación
   
   // W!=0 indica que esta abierta. W es el Handle de esa ventana
   if(W){
      // Restauro la ventana de la aplicación que esta ya abierta
      ShowWindow(W, SW_RESTORE);
      SetForegroundWindow(W);
      Application->Terminate();
      return 0;
   }

   // Resto normalmente
   try
   {
       Application->Initialize();
       Application->CreateForm(__classid(TForm1), &Form1);
       Application->Run();
   }
   catch (Exception &exception)
   {
       Application->ShowException(&exception);
   }
   return 0;
}
//---------------------------------------------------------------------------
Saludos.
Responder Con Cita