Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   splash screen con progressbar delphi (https://www.clubdelphi.com/foros/showthread.php?t=73755)

granodetoro 14-05-2011 17:06:19

splash screen con progressbar delphi
 
hola a todos.bueno encontre dos hilos con este mismo tema y resulta que no entendi como hacerlo..si alguien me puede explicarlo.favor ayudarme

ecfisa 14-05-2011 18:12:56

Hola granodetoro.

Te pongo un ejemplo con los pasos para crear un SplashScreen.

Create un Form que desde ahora lo llamo 'Logo' y ajusta las propiedades:
.BorderStyle = bsNone
.Position = poScreenCenter
.Visible = True (Importantisimo para que se visualice)

Quita el form Logo de Auto-create forms (Project->Options->Forms)

Poné lo que gustes como presentación.

Abrí el proyecto: View->Units->Project1.dpr (o como se llame tu proyecto) y agregá lo que está en negrita:
Código Delphi [-]
program Project1;
uses
  Forms,
  Windows, // Para poder usar Sleep
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Logo};
{$R *.res}
begin
  Application.Initialize;
  Logo:= TLogo.Create(nil); 
  Logo.Update;
  Sleep(3000);  // en este caso se muestra 3 segs
  Application.CreateForm(TForm1, Form1);
  Logo.Free;
  Application.Run;
end.

Un saludo.

Edito: Hola granodetoro, mis disculpas. Ya estoy escribiendo 300 veces "debo leer bién los títulos de los mensajes"... :)

ecfisa 14-05-2011 21:04:34

Hola granodetoro.

Como te dije antes disculpas por no leer bién el título de tu mensaje, te pongo un ejemplo del uso del ProgressBar en el splash.

Al formulario 'Logo' del mensaje anterior agregale un TProgressBar.
Código Delphi [-]
program Project1;

uses
  Forms,
  Windows,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Logo},
  Unit3 in 'Unit3.pas' {Form3},
  Unit4 in 'Unit4.pas' {Form4};

const
  Delay= 500;  // tiempo de demora para que se pueda visualizar
  MaxForms = 3; // número de forms que se abren

{$R *.res}
begin
  Application.Initialize;
  Logo:= TLogo.Create(nil);
  Logo.ProgressBar1.Max:= MaxForms;  // número de forms
  Logo.Update;
  Logo.ProgressBar1.StepIt; Sleep(Delay); // avanza ProgressBar y tiempo de espera para visualizar
  Application.CreateForm(TForm1, Form1); // crea un form
  Logo.ProgressBar1.StepIt; Sleep(Delay); // avanza ...
  Application.CreateForm(TForm3, Form3); // crea otro form
  Logo.ProgressBar1.StepIt; Sleep(Delay); // ...
  Application.CreateForm(TForm4, Form4);
  Logo.ProgressBar1.StepIt; Sleep(Delay);
  Logo.Free;
  Application.Run;
end.
El tiempo de espera es sólo a fin de que visualices el avance en el ejemplo. Lo podés cambiar o eliminar, lo normal es que el tiempo de demora esté dado por alguna actividad de la aplicación. (como la carga de algún recurso por ejemplo)


Un saludo.

granodetoro 14-05-2011 21:06:28

graciasssssss

radenf 14-05-2011 23:36:01

Excelente tu aporte ecfisa .
Seguramente será de gran utilidad para muchos, yo entre otros.
Muchas gracias
Saludos

newtron 15-05-2011 09:09:41

Por cierto.... qué es un splash screen? :D

Casimiro Notevi 15-05-2011 10:10:08

Cita:

Empezado por newtron (Mensaje 400066)
Por cierto.... qué es un splash screen? :D

La ventanita que sacas al principio del programa mientras carga.


newtron 15-05-2011 19:33:45

Juer... pues tiene que ser un programa gordo para necesitar uno de esos, ¿no?

granodetoro 15-05-2011 21:23:24

hice el primer ejemplo y sirvio pero el segundo da error e hice todo lo que pusiste al pie de la letra

mira mi codificacion
Código Delphi [-]
program Project1;

uses
  Forms,
  windows,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {logo},
  Unit3 in 'Unit3.pas' {Form3},
  Unit4 in 'Unit4.pas' {Form4};

Delay = 500;
  MaxForms = 3;

{$R *.res}

begin
  Application.Initialize;
   Logo:= TLogo.Create(nil);
  Logo.ProgressBar1.Max:= MaxForms;
  Logo.Update;
  Logo.ProgressBar1.StepIt; Sleep(Delay);
  Application.CreateForm(TForm1, Form1);
  Logo.ProgressBar1.StepIt; Sleep(Delay);
  Application.CreateForm(TForm3, Form3);
  Logo.ProgressBar1.StepIt; Sleep(Delay);
  Application.CreateForm(TForm4, Form4);
  Logo.ProgressBar1.StepIt; Sleep(Delay);
  Logo.Free;
  Application.Run;



end.
errrores

[Error] Project1.dpr(11): Declaration expected but identifier 'Delay' found
[Error] Project1.dpr(19): Undeclared identifier: 'MaxForms'
[Error] Project1.dpr(21): Undeclared identifier: 'Delay'

ecfisa 15-05-2011 21:59:17

Cita:

Empezado por granodetoro (Mensaje 400085)
hice el primer ejemplo y sirvio pero el segundo da error e hice todo lo que pusiste al pie de la letra

mira mi codificacion
Código Delphi [-]
program Project1;

uses
  Forms,
  windows,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {logo},
  Unit3 in 'Unit3.pas' {Form3},
  Unit4 in 'Unit4.pas' {Form4};

CONST
  Delay = 500;
  MaxForms = 3;

{$R *.res}

begin
  Application.Initialize;
   Logo:= TLogo.Create(nil);
  Logo.ProgressBar1.Max:= MaxForms;
  Logo.Update;
  Logo.ProgressBar1.StepIt; Sleep(Delay);
  Application.CreateForm(TForm1, Form1);
  Logo.ProgressBar1.StepIt; Sleep(Delay);
  Application.CreateForm(TForm3, Form3);
  Logo.ProgressBar1.StepIt; Sleep(Delay);
  Application.CreateForm(TForm4, Form4);
  Logo.ProgressBar1.StepIt; Sleep(Delay);
  Logo.Free;
  Application.Run;



end.
errrores

[Error] Project1.dpr(11): Declaration expected but identifier 'Delay' found
[Error] Project1.dpr(19): Undeclared identifier: 'MaxForms'
[Error] Project1.dpr(21): Undeclared identifier: 'Delay'

Hola granodetoro.

Casi... pero no fué totalmente al pié de la letra.:) Fijate la línea que está en mayúsculas y subrrayada.

Un saludo.

granodetoro 15-05-2011 22:15:08

:eek:no me fije del const....gracias:D


La franja horaria es GMT +2. Ahora son las 03:05:34.

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