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 04-11-2008
Avatar de HombreGordo
HombreGordo HombreGordo is offline
Miembro
 
Registrado: jul 2008
Posts: 41
Poder: 0
HombreGordo Va por buen camino
Smile Mantener viva la aplicación

Buenas Quería agradecerles por la ayuda ofrecida en muchas oportunidades que me he estancado en esto de la programación . Sin embargo, hoy día os traigo otra duda, esta vez no relacionada con bases de datos, pero sí con mantener una aplicación viva. La estructura es la siguiente:
Código Delphi [-]
program Cirrus;

uses
  Windows;

{$R *.res}

begin

end.
Quisiera mantener esa aplicación viva por tiempo indefinido, sin tener que usar una aplicación tipo consola, tal cual sin GUI. Quizás un servicio tambien pueda ser adecuado, pero tampoco se mantiene vivo mucho tiempo (Quizás no lo estoy implementando bien) . No he tenido remota idea de como lograr esto, quizás algún loop en espera de algo. Si os sirve de ayuda, es para una aplicación de tipo servidor.

Gracias de antemano
__________________
Aprendiz de Embarcadero RAD Studio...
Responder Con Cita
  #2  
Antiguo 04-11-2008
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
¿Y qué se supone que debe hacer?
¿Ocupar RAM o algo mas?

El código que has puesto, no hace nada en absoluto, asi que es normal que conforme lo ejecutes, se termine la ejecucion.

Cuando en delphi creas una nueva aplicacion, en el dpr te pone esto:
Código Delphi [-]
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Si no deseas que se muestre el formulario Form1, pon entre comentarios la linea Application.CreateForm(TForm1, Form1);

Pero sinceramente, no se que utilidad tiene, si no hace nada.
Quizás no he entendido tu problema
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #3  
Antiguo 04-11-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por HombreGordo Ver Mensaje
Quisiera mantener esa aplicación viva por tiempo indefinido, sin tener que usar una aplicación tipo consola, tal cual sin GUI.
¿Qué necesitas que haga la aplicación?
Un servicio te puede servir; También una aplicación con un bucle o con un Timer.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 04-11-2008
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Tanto las aplicaciones de consola, como las que tienen ventanas o incluso los servicios necesitan de un bucle que se esta ejecutando continuamente y mantiene la aplicacion "viva". En el caso de las aplicaciones con ventanas es el bucle de mensajes, y no se sale de el hasta que se recibe el mensaje WM_QUIT.

Este hilo puede que te sirva:
http://www.clubdelphi.com/foros/showthread.php?t=43780
Responder Con Cita
  #5  
Antiguo 04-11-2008
Avatar de HombreGordo
HombreGordo HombreGordo is offline
Miembro
 
Registrado: jul 2008
Posts: 41
Poder: 0
HombreGordo Va por buen camino
Smile Gracias :D

El hilo que os habéis dejado me ha servido de ayuda para forjar el código necesario para mantener la aplicación viva. Muchas gracias, el código es el siguiente por si alguna otra persona se quedó con la duda:

Código Delphi [-]
program Cirrus;

uses
  IdTCPServer;

{$R *.res}

var
  Server: TIdTCPServer;

begin
  Server:=TIdTCPServer.Create(nil);
  Server.DefaultPort:=23314;
  Server.Greeting.SetReply(200,'Servidor');
  Server.Active:=True;
  while not Server.Active=False do begin
    //Código va aquí... supongo...
  end;
end.
Gracias de nuevo por su atención y ayuda.
__________________
Aprendiz de Embarcadero RAD Studio...
Responder Con Cita
  #6  
Antiguo 04-11-2008
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Ten cuidado, porque puede que Indy utilice funciones que necesiten un blucle de mensajes para funcionar. Si ves que no funciona bien, yo empezaria a buscar por ahi ...
Responder Con Cita
  #7  
Antiguo 04-11-2008
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Y si necesitas un bucle de mensajes echale un vistazo a esto:
http://www.clubdelphi.com/foros/show...66&postcount=3
Responder Con Cita
  #8  
Antiguo 04-11-2008
Avatar de HombreGordo
HombreGordo HombreGordo is offline
Miembro
 
Registrado: jul 2008
Posts: 41
Poder: 0
HombreGordo Va por buen camino
Smile Bueno, hehe.

En todo caso si no puedo usar Indy, tengo las librerías de Ararat Synapse para manejar sockets libremente, sin embargo, ahora tengo otra duda por aquí.

¿Alguna vez han podido asignarle a un procedimiento, al un determinado evento de un componente? hmmm, es que me desconecta al cliente porque no he definido un evento OnExecute, y quisiera asignarle un procedure a ese evento, o al evento OnConnect de ese componente Indy. Espero me puedan ayudar con esta .

Gracias de antemano.

PD: Ese hilo que pusiste ahí me puede servir pronto y ya lo guardé, gracias .

EDITADO: Oh, tampoco había pensado que para lograr esto necesitaría un bucle de mensajes para manejar los eventos. Jajaj, gracias por haberlo posteado arriba.
__________________
Aprendiz de Embarcadero RAD Studio...

Última edición por HombreGordo fecha: 04-11-2008 a las 19:31:16.
Responder Con Cita
  #9  
Antiguo 04-11-2008
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 18
Khronos Va por buen camino
Hola HombreGordo, por lo que se sobre los mensajes de Windows vas a necesitar el handle de una ventana para poder capturar los mensajes de Windows, así que los componentes Indy no te van a funcionar desde una aplicación de consola

Salu2
Responder Con Cita
  #10  
Antiguo 04-11-2008
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por Khronos Ver Mensaje
Hola HombreGordo, por lo que se sobre los mensajes de Windows vas a necesitar el handle de una ventana para poder capturar los mensajes de Windows, así que los componentes Indy no te van a funcionar desde una aplicación de consola

Salu2
No tiene porque, revisa el mensaje que menciono arriba. Ahí hay un bucle de mensajes y hay un handle por ningún lado
http://www.clubdelphi.com/foros/show...66&postcount=3
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
viva Mexico!!!!! sakuragi La Taberna 24 17-09-2008 00:58:44
viva los muertos!!! sakuragi La Taberna 2 02-11-2007 01:13:19
mantener mi aplicacion selecionada perico OOP 9 27-04-2006 01:16:29
Mantener Aplicacion Arancada ramonibk API de Windows 10 26-10-2004 18:25:00
mantener un archivo en memoria mientras ejecuta la aplicacion agustincs API de Windows 8 01-09-2004 02:05:57


La franja horaria es GMT +2. Ahora son las 15:23:01.


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