atani123,
Cita:
Empezado por atani123
...probé tu código y funciona correctamente pero sinceramente se complica demasiado para simplemente utilizar un ProgressBar...
|
Revisa este código:
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ProgressBar1: TProgressBar;
procedure Button1Click(Sender: TObject);
private
public
end;
TPBThread = class(TThread)
private
procedure UpdatePB;
protected
procedure Execute; override;
end;
const
Max = 100000;
var
Form1: TForm1;
PBThread : TPBThread;
implementation
{$R *.dfm}
procedure TPBThread.UpdatePB;
begin
with Form1 do
ProgressBar1.Position := ProgressBar1.Position + 1;
end;
procedure TPBThread.Execute;
var
i : Integer;
begin
FreeOnTerminate := True;
for i := 1 to Max do
Synchronize(UpdatePB)
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ProgressBar1.Position := 0;
ProgressBar1.Min := 1;
ProgressBar1.Max := Max;
PBThread := TPBThread.Create(False);
end;
end.
El código anterior en Delphi XE7 sobre Windows 7 Professional x32,
es una versión simplificada del código sugerido en el Msg #9, como se muestra en la siguiente imagen:
Espero sea útil
Nelson.