Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Pantalla de inicio (https://www.clubdelphi.com/foros/showthread.php?t=29607)

Asimur 26-01-2006 20:24:10

Pantalla de inicio
 
Hola,
Bueno como podeis ver soy nuevo en el foro y bueno también soy nuevo
en la programación con delphi.Mi cuestión es la siguiente: He hecho un
formulario de inicio (splash screen) pero desaparece rápido y me gustaría que durase más. También quería ponerle una barra de progreso tipo 'TGauge'
mientras estuviera esta pantalla de inicio pero no lo he conseguido, no consigo que "progrese" ;). ¿alguién me puede ayudar?.

Saludos y grácias por todo.

delphi.com.ar 26-01-2006 20:51:10

Cita:

Empezado por Asimur
También quería ponerle una barra de progreso tipo 'TGauge'
mientras estuviera esta pantalla de inicio pero no lo he conseguido, no consigo que "progrese" ;).

¿Y que es lo que quieres que marque ese progreso?...
Si tu aplicación va a cargar módulos pesados, que tardan en cargar, es lógico poner alguna indicación para calmar la impaciencia del usuario, y en este caso el progreso lo marcará la misma carga de estos módulos...

Asimur 26-01-2006 21:07:13

hombre si, que mientras se rellene la barra ponga cosas como:
'cargando datos' 'inicializando datos', ..., pero claro todo de pega porque mi aplicación no tiene módulos pesados que digamos. Por cierto he encontrado la función 'sleep()', que se supone que hace una pausa en la ejecución, pero a mi no me funciona, me da error (tengo delphi 4).

delphi.com.ar 26-01-2006 21:24:27

Cita:

Empezado por Asimur
hombre si, que mientras se rellene la barra ponga cosas como:
'cargando datos' 'inicializando datos', ...

Bueno, pero eso depende de los pasos que haga tu programa al iniciar, no te lo podemos decir nosotros.
Simpelemente tienes que saber la cantidad de pasos que hará tu programa y asignárselo a la propiedad Max (y dejar Min en cero).
Cada vez que tu aplicación termine un paso, o bien puedes cambiar el valor de la propiedad Position, o puedes llamar al método StepBy(1), o puedes llamar a StepIt definiendo previamente el valor de cada paso en la propiedad Step.

Sería buenísimo saber que error te da el uso de la función sleep, ya que es mas que básica, solo tienes que usar la unit Windows, y llamar a la función pasándole como parámetro el tiempo en milisegundos que quieres que detenga la ejecución.

PD: ¿Te parece lógico forzar que la aplicacón tarde mas de lo que tardaría realmente al iniciar?

roman 26-01-2006 21:48:52

Quizá no le funciona el Sleep porque falta algún Refresh. Aquí un ejemplo:

Código Delphi [-]
program Project1;

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

{$R *.res}

begin
  Application.Initialize;

  Form2 := TForm2.Create(Application);
  Form2.Show;
  Form2.Refresh;

  Form2.Label1.Caption := 'Ensamblando pixeles...';
  Form2.Refresh;
  Sleep(1000);

  Form2.Label1.Caption := 'Pintando controles...';
  Form2.Refresh;
  Sleep(1000);

  Form2.Label1.Caption := 'Pegando la barra de desplazamiento...';
  Form2.Refresh;
  Sleep(1000);

  Form2.Label1.Caption := 'Agregando botones...';
  Form2.Refresh;
  Sleep(1000);

  Form2.Label1.Font.Style := [fsBold];
  Form2.Label1.Caption := 'Un momento, voy al sanitario';
  Form2.Refresh;
  Sleep(50000);
  Form2.Label1.Font.Style := [];

  Form2.Label1.Caption := 'Fijando la barra de título...';
  Form2.Refresh;
  Sleep(1000);

  Form2.Label1.Caption := 'Recopilando fuentes...';
  Form2.Refresh;
  Sleep(1000);

  Form2.Label1.Caption := 'Activando el cursor...';
  Form2.Refresh;
  Sleep(1000);

  Form2.Free;

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

:D

pd: La verdad es que al principio suena muy bonito eso del splash aún siendo innecesario, pero al final tus usuarios te agradecerán que la aplicación inicie lo antes posible.

// Saludos

Asimur 26-01-2006 22:18:18

oops, que novato, pues si lo que faltaba era la unit Windows para que
funcionara el sleep. Indagaré en eso 'delphi.com.ar' grácias, y grácias
a ti tambíen 'roman' por el código.

PD: la verdad es que creo que teneís razón con lo del 'splash screen',
pero bueno, lo probaré haber que tal.

Saludos.

AzidRain 27-01-2006 01:16:53

Pues yo coincido con lo que dice delphi.com.ar ....¿Que caso tiene hacer mas lento el programa solo para que "se vea mas profesional" o el usuario tenga tiempo de admirar el arte del bitmap del Splash?...Yo no soy muy amigo de poner Splash a menos que durante el inicio de la aplicación tenga que hacer procesos previos o "preparar el terreno" (en mi caso casi siempre son conexiones a bases de datos remotas), además estos Splash unicamente son útiles cuando no sabes a ciencia cierta que tanto tiempo puede tardar...Ahora bien si de todas formas quieres que el usuario vea quien lo hizo o algo asi, puedes poner una forma "Acerca..." sencilla con un boton "Aceptar" que se active justo cuando se ha cargado por completo la aplicación dándole al usuario la oportunidad de cerrarla cuando quiera...

En fin, es solo una opinión...:rolleyes:

delphi.com.ar 27-01-2006 13:43:05

Cita:

Empezado por roman
Código Delphi [-]
  Form2.Label1.Font.Style := [fsBold];
  Form2.Label1.Caption := 'Un momento, voy al sanitario';
  Form2.Refresh;
  Sleep(50000);
  Form2.Label1.Font.Style := [];

¡Que velocidad! :D


La franja horaria es GMT +2. Ahora son las 17:18:11.

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