Delphi - Progress bar

 
Vista:

Progress bar

Publicado por Julio (3 intervenciones) el 10/07/2006 17:26:56
Como uso la progressbar ? y como puedo configurarla para hacer el simulacro de que me estar cargando un programa alguien que me diga

Y gracias por adelantado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Progress bar

Publicado por Chacal (52 intervenciones) el 11/07/2006 15:17:26
Te doy un ejemplo y espero que te sirva... en un form splash con dos labels "lblEstado" y "lblProgreso"; y un progressbar de raize "PbCarga2" es lo mismo cualquier progressbar. Y despues que carga abre otro form. Por otro lado el formSplash se va haciendo transparente a medida que avanza el progress, creando un buen efecto.

var
ST: DWORD;
I: Integer;

begin
Application.Title := 'Diagonal';
FrmSplash:= TFrmSplash.Create(Application);
FrmSplash.LblEstado.Caption := 'Inicializando...';
FrmSplash.LblProgreso.Caption:='';
Application.ProcessMessages;
FrmSplash.Show;
Application.Initialize;
FrmSplash.PbCarga2.Percent := FrmSplash.PbCarga2.Percent+10;
for I:= 0 to 24 do
begin
FrmSplash.AlphaBlendValue:= FrmSplash.AlphaBlendValue+10;
if I = 13 then frmSplash.pbCarga2.Percent := frmSplash.pbCarga2.Percent+10;
Application.ProcessMessages;
end;
frmSplash.AlphaBlendValue:= 255;
frmSplash.LblProgreso.Caption:= 'Iniciando el formulario de inicio de sesión...';
frmSplash.LblProgreso.Caption:= 'Iniciando el formulario de inicio de sesión...';
frmSplash.pbCarga2.Percent:= frmSplash.pbCarga2.Percent+10;
Application.ProcessMessages;
sleep(2000);
//frmValidarUsuario := TfrmValidarUsuario.Create(Application);
//frmSplash.pbCarga2.Position:= frmSplash.pbCarga2.Position+4;
for I:= 0 to 18 do
begin
frmSplash.AlphaBlendValue:= frmSplash.AlphaBlendValue-6;
if I = 18 then
begin
frmSplash.pbCarga2.Percent:= frmSplash.pbCarga2.Percent+10;
frmSplash.LblProgreso.Caption:= '';
end;
Application.ProcessMessages;
end;
//frmValidarUsuario.lblNombre.Caption:= 'Evaluación Externa';
frmSplash.lblEstado.Caption:= 'Iniciando sesión...';
frmSplash.LblProgreso.Caption:= '';
Application.ProcessMessages;
frmSplash.pbCarga2.Percent:= frmSplash.pbCarga2.Percent+10;
//if frmValidarUsuario.ShowModal = 2 then
//begin
//Application.Terminate;
//Exit;
//end;
frmSplash.pbCarga2.percent := frmSplash.pbCarga2.Percent+10;
frmSplash.lblEstado.Caption:= 'Abriendo tablas...';
frmSplash.LblProgreso.Caption:= '';
Application.ProcessMessages;
Application.CreateForm(TDataModule1, DataModule1);
//DMEvaluacion.DesconectarDB;
//DMEvaluacion.ConectarDB;
frmSplash.pbCarga2.Percent:= frmSplash.pbCarga2.Percent+25;
frmSplash.pbCarga2.Percent:= frmSplash.pbCarga2.Percent+5;
frmSplash.lblEstado.Caption:= 'Sistema iniciado.';
frmSplash.LblProgreso.Caption:= 'Esperando aceptación del servidor para todas las operaciones...';
Application.ProcessMessages;
ST:= GetTickCount;
while GetTickCount-ST < 800 do Application.ProcessMessages;
sleep(2000);
Application.CreateForm(TFormMenuPrin, FormMenuPrin);
FormMenuPrin.Show;
frmSplash.Hide;
Application.Run;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Progress bar

Publicado por Carlos (20 intervenciones) el 11/07/2006 17:29:21
Hey men gracias pero asi como me dijiste es muy largo y no me salio ... no habra otra forma de hacerlo... porque tengo un sistema y le quiero implentar eso . porque mi sistema tiene un login de acceso con el nombre y el contraseña si me pudieras decir otra forma de hacerlo te lo agradeceria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Progress bar

Publicado por Chacal (52 intervenciones) el 12/07/2006 15:01:53
Te doy otro pero no es nada profesional... lo que hace es simular la carga de un sistema, pero solo eso "simula". El tema es que uso un componente llamado RzMeter que es de Raize (se puede bajar un trial de http://www.raize.com/DevTools/RzComps/DemoTrial.asp). La propiedad Max tiene que estar en 100, para que despues puedas dividir esa cantidad por 4 y entonces hacer que la barra se mueva cada 25 hasta llegar a 100; eso lo manejas como vos quieras puede ser cada 20 o cada 10... Tenes el form Splash en mi ejemplo "FrmSplash" que el mismo yendo a Project ->options->Forms debe estar del lado de "Aviable Forms" y en "Auto-create Forms" todos los otros que vas a usar en tu aplicacion. Luego vas a Project->view source (para ver el codigo principal de tu proyecto) y le agregas este codigo (en el uses le agregas "Windows" por ejemplo: "
uses
Forms,
windows,............").

Application.Initialize;
FrmSplash := TFrmSplash.Create(application);
FrmSplash.Show;
FrmSplash.Update;
application.Initialize;
application.Title := 'Mi proyecto'; //esto esta por defecto en tu codigo
sleep(500); //lo que hace el sleep es parar la aplicacion 1/2 segundo
frmsplash.RzMeter1.value := 25; //aca le digo que avance 25
sleep(500); //para 1/2 segundo
FrmSplash.RzLabel2.Caption := 'Cargando Archivos...';
FrmSplash.rzmeter1.value := 50; //aca avanza a 50
sleep(500);
FrmSplash.RzLabel2.Caption := 'Abriendo Bases...';
FrmSplash.rzmeter1.value := 75; //avanza a 75
sleep(500);
FrmSplash.RzLabel2.Caption := 'Iniciando...';
FrmSplash.rzmeter1.value := 100; //y completa todo a 100
Sleep(250);
FrmSplash.RzLabel2.Caption := 'Listo...';
sleep(500);
//Apartir de aqui cargá todos los demas Forms...
//Fijate que el primer form que se crea es de Login como el de tu aplicacion para validar a usuarios

Application.CreateForm(TFrmLogin, FrmLogin);
Application.CreateForm(TFrmPcipal, FrmPcipal);
Application.CreateForm(TFrmBusqCli, FrmBusqCli);
Application.CreateForm(TDtmCliente, DtmCliente);
Application.CreateForm(TDtmAltaCli, DtmAltaCli);
Application.CreateForm(TFrmTicket, FrmTicket);
Application.CreateForm(TFrmNvoCli, FrmNvoCli);
Application.CreateForm(TFrmModiCli, FrmModiCli);
Application.CreateForm(TFrmAgenda, FrmAgenda);
Application.CreateForm(TDtmAgenda, DtmAgenda);
Application.CreateForm(TDtmListCli, DtmListCli);
Application.CreateForm(TFrmAcerca, FrmAcerca);
Application.CreateForm(TDtmHora, DtmHora);
Application.CreateForm(TDtmListAgen, DtmListAgen);
Application.CreateForm(TDtmTotales, DtmTotales);
Application.CreateForm(TDtmListCli2, DtmListCli2);
Application.CreateForm(TFrmAgenEntre, FrmAgenEntre);
Application.CreateForm(TDtmAgenEntre, DtmAgenEntre);
Application.CreateForm(TDtmRepAgenEntre, DtmRepAgenEntre);
Application.CreateForm(TDtmLogin, DtmLogin);
FrmSplash.Hide; //Apartir de aqui liberas el splash...
FrmSplash.Free;
Application.Run;
end.

Por ultimo supongo que con otro componente que no sea el Raize podes hacer lo mismo... el tema es que avance a medida que se va iniciando la aplicacion...
Espero que te sirva y haber sido claro cualquier duda me escribis...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar