Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como saco una barra de progreso al iniciar una aplicacion que tarda en arrancar? (https://www.clubdelphi.com/foros/showthread.php?t=2954)

danytorres 14-08-2003 14:39:25

Como saco una barra de progreso al iniciar una aplicacion que tarda en arrancar?
 
Hola a todos los del foro. Tengo una aplicacion que tarda en arrancar y el usuario cuando le da click al icono de la aplicación no sale al instante le Vuelve a dar otro click, como hago para sacar una ventana con una barra de progreso que indique cuanto va a tardar en abrir. Nota lo que mas tarda en arrancar es el Datamodule. Quien pudiera ayudarme le doy gracias de antemano.

_______________________
Un saludo....

__cadetill 14-08-2003 15:16:10

En el dpr de tu aplicacion pon algo asi....

Código:

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};
  USpalsh in 'USpalsh.pas' {FSpalsh};
  ..... // lista de formularios y DataModules

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(FSpalsh, Spalsh);
  Spalsh.Show;
  Splash.Update;
  Application.CreateForm(TForm1, Form1);
  .....
  // creas los forms y datamodules que quieras

  Spalsh.Free;
  Application.Run;
end.

Espero te sirva

danytorres 14-08-2003 16:47:20

Gracias por responder cadetill. Crea un formulario talcual me dices en tu codigo, pero cuando arranco la aplicacion me muestra el formulario pero cuando se libera el mismo cierra la aplicacion y no hace mas nada no entiendo.

__________________
Un saludo a todos....

delphi.com.ar 14-08-2003 16:50:34

¿Estas poniendo en la línea Application.CreateForm(TForm1, Form1); la creación de tu/s formularios?

danytorres 14-08-2003 16:55:05

delphi.com.ar estoy colocando el codigo tal cual me lo dio cadetill, nose si estoy haciendo algo mal lee agradesco que me ayuden.

____________________
Un saludo a todos...

__cadetill 14-08-2003 19:56:02

Probado y funcionando

Código:

program Project1;

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

{$R *.res}

begin
  Application.Initialize;
  Form2 := TForm2.Create(Application);
  Form2.Show;
  Form2.Update;
  Application.CreateForm(TForm1, Form1);
  Form2.Free;
  Application.Run;
end.

Asegurate que Form2 este en available forms (no en autocreate) y que el Main Form sea el Form1

Espero que ahora si :)

danytorres 14-08-2003 21:46:30

Gracias cadetill el segundo codigo que me pasaste funciona muy bien gracias, pero una ultima cosa como muestro el tiempo de espera en un ProgressBar.

_________________________
Un saludo a todos...

delphi.com.ar 14-08-2003 22:39:48

Si lo que vas a hacer es conectarte a la base de datos y/o crear y abrir formularios... no sabrás cuál es el tiempo de espera real, lo que puedes hacer es poner alguna animación cíclica, para que se vea que esta cargando o poner un progressbar que se mueva por cada paso que haga tu aplicación que creas que demore.

Saludos!

roman 15-08-2003 09:08:10

Además de lo que ya te han indicado, si deseas evitar que se ejecute otra instancia de tu aplicación cuando un usuario impaciente de click con splash y todo quizá te sirva incluir la unidad uiapp.pas en tu archivo dpr:

Código:

program Project1;

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

{$R *.res}

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

Con esto evitarás que pueda ejecutarse una segunda instancia de la aplicación; cuando un usuario de click nuevamente, se activará la instancia anterior.

// Saludos

protector2020 15-08-2007 04:19:28

¿y la unidad?
 
Cita:

Empezado por roman (Mensaje 11961)
... quizá te sirva incluir la unidad uiapp.pas en tu archivo dpr:...

¿donde puedo encontrar esta unidad?:confused:
salu2.

Delphius 15-08-2007 04:26:16

Cita:

Empezado por protector2020
¿donde puedo encontrar esta unidad?

Hola protector2020,

A esa unidad la vas a encontrar el la página de roman.
Saludos,

protector2020 17-08-2007 10:00:48

grx :P
 
gracias Delphius, ya la encontre, asi como otras cosas interesantes... mucho roman!! :p
salu2


La franja horaria es GMT +2. Ahora son las 20:23:34.

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