PDA

Ver la Versión Completa : como hacer aplicacion sin formularios


kalisto
24-07-2004, 14:53:47
Hola a todos.

Como puedo hacer una aplicacion sin formularios, pero que tenga componentes no visibles y que estos respondan a determinados eventos.

__hector
24-07-2004, 19:58:16
Como vas a cerrar la aplicacion?
Te parece un servicio de windows?
Que responda a que tipo de eventos, si no hay nada visible?

__marcsc
24-07-2004, 20:38:48
Hola, para empezar una aplicación de consola puedes ir a

File-> New->Other->Console Application.

Puedes añadir una DataModule y añadir componentes no visuales, y si creas código que intercepte ciertos eventos en este DataModule tendrás lo que tu quieres. Recuerda que al iniciar la aplicación debes crear una instancia del data module.

Por ejemplo, si añades tablas y programas un BeforeOpen, se disparará tu código. Imagino que es lo que quieres.

Saludos!

kalisto
26-07-2004, 19:39:32
Hola, para empezar una aplicación de consola puedes ir a

File-> New->Other->Console Application.

Puedes añadir una DataModule y añadir componentes no visuales, y si creas código que intercepte ciertos eventos en este DataModule tendrás lo que tu quieres. Recuerda que al iniciar la aplicación debes crear una instancia del data module.

Por ejemplo, si añades tablas y programas un BeforeOpen, se disparará tu código. Imagino que es lo que quieres.

Saludos!
No me convence esta solución aun siendo valida, ya que si tengo que crear un datamodule para eso dejo el formulario y lo oculto, pero el objetivo de quitar el formulario es que el tamaño del ejecutable sea el menor posible
gracias de todas formas.

kalisto
26-07-2004, 19:42:41
Como vas a cerrar la aplicacion?
Te parece un servicio de windows?
Que responda a que tipo de eventos, si no hay nada visible?
Al evento ontimer de un timer por ejemplo

__marcsc
26-07-2004, 20:07:14
Bueno, si lo que quieres es evitar que crezca el ejecutable puedes hacer algo como



TMiClase = class
public
procedure AccionTimer(Sender: TObject);
end;

procedure TMiClase.AccionTimer(Sender: TObject);
begin
//tu código de evento
end;

program TuPrograma;
var
Timer: TTimer;
a: TMiClase;
begin
a:= TMiClase.Create;
Timer:= TTimer.Create(nil);
Timer.OnTimer:= a.AccionTimer;
//etc
end;


Esto supongo que si te serviria.

Saludos!

EDIT: Por otra parte, precisamente los Data Module sirven para no tener que hacer forms invisibles...

kalisto
28-07-2004, 21:33:43
Muchas gracias, es lo que buscaba.



Bueno, si lo que quieres es evitar que crezca el ejecutable puedes hacer algo como



TMiClase = class
public
procedure AccionTimer(Sender: TObject);
end;

procedure TMiClase.AccionTimer(Sender: TObject);
begin
//tu código de evento
end;

program TuPrograma;
var
Timer: TTimer;
a: TMiClase;
begin
a:= TMiClase.Create;
Timer:= TTimer.Create(nil);
Timer.OnTimer:= a.AccionTimer;
//etc
end;


Esto supongo que si te serviria.

Saludos!

EDIT: Por otra parte, precisamente los Data Module sirven para no tener que hacer forms invisibles...