Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-08-2005
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
Hola Foro! tiempo sin verlos, creo que si podrias iniciar la aplicacion clon de la actual antes de cerrarla, pues puedes comunicarlas con paso de mensajes a través del RegisterWindowMessage, solo tendrias q parar el arranque de la secundaria desde código hasta q la primera le comunique q ya ha terminado (en otras palabras: la primera espera el momento en que la segunda tenga conciencia para terminar), por ejemplo esta aplicación evita ser ejecutada si ya existe otra instancia de ella:

UINT gmShutDown;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)

{ gmShutDown=RegisterWindowMessage("6FBFC81A-D32A-4B8D-BB60-0390470F82CF");

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,bool &Handled)

{ if(Msg.message == gmShutDown) //Recepción del mensaje de primera aplicación

Application->Terminate();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn1Click(TObject *Sender)

{ PostMessage(HWND_BROADCAST, gmShutDown, 0, 0); //Enviar el mensaje a las otras
//aplicaciones
}

Ojala te sirva!!!
Responder Con Cita
  #2  
Antiguo 11-08-2005
AFilth AFilth is offline
Miembro
 
Registrado: ago 2005
Posts: 119
Poder: 19
AFilth Va por buen camino
Buenas otra vez, en primer lugar gracias a todos. Veo q aqui hay autenticos expertos en Delphi

Dec el problema q te comentaba viene dado pq yo al intentar iniciar la aplicacion, tengo un control para q no se pueda hacer dos veces, al probarlo ya salta ese aviso y no se ejecuta el programa ya que al llamarlo el primero q se ejecuto aun no ha acabado.

Esto seria sencillo de controlar metiendo una variable q distinga ese caso de otro, pero este programa es bastante gordo (consume mucha memoria, tira de una BD de SQL Server muy muy grande, cxargha muchisimas cosas al arrancar...) y por ello no es factible arrancarlo por segunda vez si ya esta en ejecucion. En una maquina actual no daria problemas pero...en un PII o un PIII si no lo peta iria lentisimo.

No obstante gracias a todos por las respuestas, seguire investigando y probando lo q me habeis dicho y a ver si llego a alguna solucion.

Un saludo.
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


La franja horaria es GMT +2. Ahora son las 04:49:22.


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