![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Código:
procedure TForm1.Button1Click(Sender: TObject); var i : integer; begin ProgressBar1.Position := 0; ProgressBar1.Step := 1; ProgressBar1.Max := 100; ProgressBar1.Min := 0; for i := 1 to ProgressBar1.Max do begin Label1.Caption := IntToStr(ProgressBar1.Position); ProgressBar1.StepIt; Sleep(100); // solo es para ver el visionado Application.ProcessMessages; end; end; |
#2
|
|||
|
|||
Muchas Gracias Cadetill, solo que tengo otro problema, que no puedo hacer que en ese mismo boton despues de que llege al 100 regrese a 0.
Intente haciendo la viceversa del primer for pero no me da, ¿Sabes como hacerle? |
#3
|
|||
|
|||
Sólo has de cambiar el Step del TProgressBar a -1
Código:
procedure TForm1.Button1Click(Sender: TObject); var i : integer; begin ProgressBar1.Position := 0; ProgressBar1.Step := 1; ProgressBar1.Max := 100; ProgressBar1.Min := 0; for i := ProgressBar1.Min to ProgressBar1.Max - 1 do begin Label1.Caption := IntToStr(ProgressBar1.Position); ProgressBar1.StepIt; Sleep(100); // solo es para ver el visionado Application.ProcessMessages; end; ProgressBar1.Step := -1; for i := ProgressBar1.Min to ProgressBar1.Max - 1 do begin Label1.Caption := IntToStr(ProgressBar1.Position); ProgressBar1.StepIt; Sleep(100); // solo es para ver el visionado Application.ProcessMessages; end; end; |
#4
|
|||
|
|||
Muchas gracias por la respuesta
![]() |
#5
|
||||
|
||||
Un comentario, una manera mas adecuada de hacer este tipo de animaciones es incorporando un componente Timer (ficha "System") en tu formulario. En el evento OnCreate del formulario colocar los valores iniciales:
Código:
procedure TForm1.FormCreate(Sender: TObject); begin ProgressBar1.Position := 0; ProgressBar1.Step := 1; ProgressBar1.Max := 100; ProgressBar1.Min := 0; Timer1.Interval:=100; //Aquí defines que tan rapido quieres que se realize la cuenta end; Código:
procedure TForm1.Timer1Timer(Sender: TObject); begin Label1.Caption := IntToStr(ProgressBar1.Position); ProgressBar1.StepIt; If ProgressBar1.Position>99 then ProgressBar1.Step := -1; If ProgressBar1.Position<1 then ProgressBar1.Step := 1; end; Para controlar cuando iniciar y detener la animación usa la propiedad Enabled del Timer. Saludos. Última edición por Magician^ fecha: 04-04-2004 a las 23:41:18. |
#6
|
|||
|
|||
Oh gracias, la verdad que no tenia ni idea de que se pudiera hacer asi, es que no tengo mas de un mes que me inicie en esto de Delphi y apenas voy conociendo los comandos.
|
#7
|
||||
|
||||
Wop!
Hola aragorneuf, como veo que eres nuevo por estas lares (tú mismo lo dices ![]() También me gustaría hacerte un par de sugerencias, en primer lugar que le eches un vistazo ![]() Nada más, es normal que si empiezas a entrar ahora en el foro comentas estos "errores", ya que todos lo hemos hecho, pero con un poquito de voluntad de cada uno, la convivencia en el foro es mucho más agradable.
__________________
E pur si muove |
![]() |
|
|
![]() |
|