Модуль потока
Код:
unit UNewThead;
interface
uses
Classes;
type
TNewThead = class(TThread)
private
{ Private declarations }
FPos: Integer;
procedure SetPos();
protected
procedure Execute; override;
public
constructor Create();
end;
implementation
uses SysUtils, Unit1;// прописываем модуль Form1
{ TNewThead }
constructor TNewThead.Create;
begin
inherited Create(true);
FreeOnTerminate:=true;
Priority:=tpLower;
Resume;
end;
procedure TNewThead.Execute;
begin
{ Place thread code here }
FreeOnTerminate:=true;
FPos := 0;
while FPos < 100 do
begin
Synchronize(SetPos);
Inc(FPos, random(15));
Sleep(3000);
end;
end;
procedure TNewThead.SetPos;
begin
Form1.ProgressBar1.Position := FPos;
FPos := Form1.ProgressBar1.Position;
end;
end.
Сохраняешь как UNewThead.pas
В модуле второй формы
Код:
implementation
uses SysUtils, UNewThead; // прописываем модуль потока
procedure TForm2.Button1Click(Sender: TObject);
Stream: TNewThread;
begin
Stream:=TNewThread.Create();
end;