unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
btn1: TButton;
pb1: TProgressBar;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TTestThread = class(TThread)
private
FMax,FTotal,FPosition:Integer;
protected
procedure execute;override;
procedure updateprogress;
public
property Max:Integer read FMax write FMax;
end;
var
Form1: TForm1;
implementation
uses Math;
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
test:TTestThread;
begin
test := TTestThread.Create(False);
test.FMax := 10000;
test.FreeOnTerminate := True;
test.Resume;
end;
procedure TTestThread.execute;
var
i,tot:Integer;
begin
tot := 0;
for i := 1 to FMax do
begin
tot := tot + i;
if i mod (FMax div 100) = 0 then
begin
FPosition := i*100 div FMax;
Synchronize(updateprogress);
end;
end;
end;
procedure TTestthread.updateprogress;
begin
Form1.pb1.Position := FPosition;
end;
end.
TThread 日志
最新推荐文章于 2020-06-22 15:59:46 发布