Con este programita sencillo quiero demostrar que el progressbar se puede utilizar haciendo posible el tiempo que nosotros queramos dar. Estoy abierto a cualquier critica
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls, StdCtrls, ExtCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Label1: TLabel; Label2: TLabel; ProgressBar1: TProgressBar; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Button1KeyPress(Sender: TObject; var Key: char); procedure Timer1Timer(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin progressbar1.Max:= StrToint (edit1.Text); timer1.Enabled:= true; edit1.Enabled:= false; end; procedure TForm1.Button1KeyPress(Sender: TObject; var Key: char); begin if not (key in ['0'..'9', #8]) then key := #0; end; procedure TForm1.Timer1Timer(Sender: TObject); begin with progressbar1 do begin stepit; if position = max then begin position := 0; timer1.Enabled:= false; button1.Enabled:= true; edit1.Enabled:= true; end; end; end; end.
Desde propiedades debemos cambiar.
Asigne el valor True a la propiedad Default a TButton
Asigne el valor False a la propiedad Ttimer.
Asigne el Valor 1 a la propiedad Step deTProgressbar.