5,388
社区成员
发帖
与我相关
我的任务
分享
TMyThread1 = class(TMyThread)
protected
procedure Execute;override;
procedure SetPb;
private
i_ca:Integer;
end;
procedure TMyThread1.Execute;
begin
Synchronize(SetPb);
end;
procedure TMyThread1.SetPb;
var
i:Integer;
i_cata:Integer;
begin
i_cata:=i_ca;
if i_cata=1 then
begin
Form1.pb1.Min:=0;
Form1.pb1.Max:=10000;
Form1.pb1.Position:=0;
for i:=0 to 10000 do
begin
Form1.pb1.StepBy(1);
end;
end else
begin
Form1.pb2.Min:=0;
Form1.pb2.Max:=10000;
Form1.pb2.Position:=0;
for i:=0 to 10000 do
begin
Form1.pb2.StepBy(1);
end;
end;
end;
procedure TForm1.btn1Click(Sender: TObject);
var
m1: TMyThread1;
m2: TMyThread1;
begin
m1:=TMyThread1.Create(True);
m1.i_ca:=1;
m1.FreeOnTerminate := True;
m1.Resume();
m2:=TMyThread1.Create(True);
m2.FreeOnTerminate := True;
m2.i_ca:=2;
m2.Resume();
end;
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SPComm, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
btn1: TButton;
pb1: TProgressBar;
pb2: TProgressBar;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type
TMyThread1 = class(TMyThread)
protected
procedure Execute;override;
procedure SetPb;
private
i_ca:Integer;
end;
procedure TMyThread1.Execute;
begin
Synchronize(SetPb);
end;
procedure TForm1.btn1Click(Sender: TObject);
var
m1: TMyThread1;
m2: TMyThread1;
begin
m1:=TMyThread1.Create(True);
m1.i_ca:=1;
m1.FreeOnTerminate := True;
m1.Resume();
m2:=TMyThread1.Create(True);
m2.FreeOnTerminate := True;
m2.i_ca:=2;
m2.Resume();
end;
procedure TMyThread1.SetPb;
var
i:Integer;
i_cata:Integer;
begin
i_cata:=i_ca;
if i_cata=1 then
begin
Form1.pb1.Min:=0;
Form1.pb1.Max:=10000;
Form1.pb1.Position:=0;
for i:=0 to 10000 do
begin
Form1.pb1.StepBy(1);
end;
end else
begin
Form1.pb2.Min:=0;
Form1.pb2.Max:=10000;
Form1.pb2.Position:=0;
for i:=0 to 10000 do
begin
Form1.pb2.StepBy(1);
end;
end;
end;