Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Aplicacion sin form que maneje eventos (https://www.clubdelphi.com/foros/showthread.php?t=25947)

Sotrono 08-10-2005 19:58:41

Aplicacion sin form que maneje eventos
 
Hola. Les cuento mi problema:
Estoy desarrollando una aplicacion sin form. Lo que hice fue crear una aplicacion comun, remover del projecto el form y programar en el dpr.
En mi aplicacion hay componentes que manejan eventos, el problema es que el programa termina de ejecutar las instrucciones y se cierra. Yo lo que quiero es que se quede esperando (como las aplicaciones con forms) a que ocurran eventos y ejecutar los procedimientos correspondientes.

Saludos...

dec 08-10-2005 20:36:57

Hola,

No sé hasta qué punto puede servirte, pero...


Cita:

Empezado por Ayuda de Delphi - Hiding the main form
You can prevent the main form from appearing when your application starts by using the global Application variable.

To hide the main form at startup:

1 Choose Project|View Source to display the main project file.
2 Add the following code after the call to Application.CreateForm and before the call to Application.Run.

Código Delphi [-]
 Application.ShowMainForm := False;
 Form1.Visible := False; { the name of your main form may differ }
Note:

You can set the form's Visible property to False using the Object Inspector at design time rather than setting it at runtime as in the previous example.


Sotrono 08-10-2005 20:44:20

Gracias.. pero lo importante es sacar la unidad Forms del proyecto para ahorrar espacio.

dec 08-10-2005 20:56:28

Hola,


Cita:

Empezado por Sotrono
(...) lo importante es sacar la unidad Forms del proyecto para ahorrar espacio.

Disculpa, creí que hacías uso de la variable "Application", y, ahora no sé cómo puedes hacer uso de la misma si no incluyes la unidad "Forms", que es donde se define en una aplicación estándar como la que tratas de llevar a cabo. ¿Estudiaste la posibilidad de desarrollar un Servicio de Windows en lugar de una aplicación estándar? ¿Quizás una aplicación de tipo "Consola"?

Sotrono 08-10-2005 21:59:01

Ok, gracias...
Voy a probar y despues te digo...

roman 09-10-2005 17:42:32

Cita:

Empezado por Sotrono
Hola. Les cuento mi problema:
Estoy desarrollando una aplicacion sin form. Lo que hice fue crear una aplicacion comun, remover del projecto el form y programar en el dpr.
En mi aplicacion hay componentes que manejan eventos, el problema es que el programa termina de ejecutar las instrucciones y se cierra. Yo lo que quiero es que se quede esperando (como las aplicaciones con forms) a que ocurran eventos y ejecutar los procedimientos correspondientes.

¿Qué tipo de eventos manejas?

Toda aplcación de Window involucra un ciclo que se ejecuta contantemente hasta que se de la condición de terminación. En el caso de una aplicación normal, el método Application.Run es el que tiene este ciclo y no termina sino hasta que la variable Terminate es true.

Tienes que implementar de una u otra forma ese ciclo. Incluso si te decides por una aplicación de consola tendrás que hacerlo; de otra forma la aplicación terminará en cuanto llegue a la última instrucción.

Si te decides por un servico es lo mismo, el servicio implementa un ciclo análogo.

Si te fijas, no estoy diciéndote nada nuevo; como en cualquier código, el flujo se ejecuta linealmente hasta la última instrucción. El uso de un ciclo te permite alterar el flujo normal.

// Saludos

dec 09-10-2005 17:52:24

Hola,


Cita:

Empezado por roman
Toda aplcación de Window involucra un ciclo que se ejecuta contantemente (...)

A ver, David, repite conmigo: "Toda aplicación de Windows involucra un ciclo que"... :D

roman 09-10-2005 18:03:33

Bueno, viéndolo fríamente, lo que dije es falso. Obviamente hay aplicaciones que no tienen este ciclo. Es sólo que terminarán "muy rápido".

Por otro lado me pregunto qué tanto minimizará el taaño de la aplicación. Aunque no use Forms, si usa controles deberá incluir la unidad Controls y, dependiendo de qué controles, también StdCtrls, ComCtrls, etc.

// Saludos

dec 09-10-2005 20:09:13

Hola,

A mí, sin embargo, lo que me pareció primeramente extraño y me llamó la atención y creí que se preguntaba no era el tamaño del ejecutable, sino el dónde se situarían los componentes que tuvieran que responder a eventos, qué tipo de eventos, vaya, se querían responder, porque, evidentemente no serían eventos que se produjeran en ningún formulario, que, precisamente se quería evitar.

Se me ocurre únicamente algo parecido (o lo mismo) que un Servicio de Windows. En los ejemplos que he visto sobre estos (en varios libros, no en uno solo) dichos ejemplos se basan en que el Servicio Web inicia un bucle, en que, por ejemplo, se esté a la escucha de determinado puerto. Mientras desde el puerto no llegue determinado mensaje el bucle seguiría ejecutándose.

Alguna vez me dije que eso debería consumir muchos recursos, pero, debe ser, ora que "la cosa" se implemente en Hilos, ora que no se consuman tantos recursos como yo creo en un bucle que esté ejecutándose sin tiempo definido para su final, es decir, porque me lo imagino demasiado "humanamente", como algo que da vueltas y vueltas y vueltas y vueltas sin parar una y otra vez... El ordenador tendrá otra forma de pensar, probablemente y no le "costará" tanto entender eso.

Bueno. Ya he hablado demasiado. Por favor, cortadme cuando me ponga tan pesado. ;)

Neftali [Germán.Estévez] 10-10-2005 10:07:14

Si el tema del tamaño es importante, ésta puede ser una buena opción...

Key Objects Library (KOL)
http://bonanzas.rinet.ru/

jachguate 10-10-2005 16:17:57

Creo que lo que queres hacer es un servicio... entonces buscá ayuda por ese tema. Comanzando por file/new/other/service application.

Pueden haber muchos objetos que respondan a eventos en la red, en los puertos seriales/paralelos/usb de tu equipo contenidos en un módulo de datos, por ejemplo.

Saludos.

;)


La franja horaria es GMT +2. Ahora son las 22:56:44.

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