Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-04-2008
vivamotos vivamotos is offline
Miembro
 
Registrado: ago 2006
Posts: 150
Poder: 18
vivamotos Va por buen camino
Controlar forms y procesos

Saludos,

Estoy creando un programa principal que hace Show() de varios forms, y en un momento determinado me gustaría saber la cantidad de forms activos y cuales son, se puede?.

La otra cosa que quiero es controlar que un programa no se ejecute 2 veces. es decir que si al clicar otra vez al programa ya esta funcionando te avise de que ya existe este programa en ejecución.

Grácias.
Responder Con Cita
  #2  
Antiguo 18-04-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Respecto de lo primero cuentas con la variable global "Screen", que te da acceso a todos los formularios, me parece que "visibles" o simplemente "creados", en un momento dado. Y, respecto de lo segundo, acaso lo mejor podría ser que intentaras traducir la unidad UIApp.pas del maestro Román a C++, puesto que está escrita en Delphi.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 18-04-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
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
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Sobre los procesos Suriu Windows 1 07-05-2007 22:11:40
Crear procesos mjuan API de Windows 5 19-12-2005 16:14:42
procesos de sqlserver davidgaldo Conexión con bases de datos 1 15-12-2004 19:56:19
Trabajar en PROCESOS bustio Varios 4 22-10-2003 01:48:12


La franja horaria es GMT +2. Ahora son las 05:18:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi