procedure TMainFrm.Go();
var
Dt1,Dt2,Dt3,Dt4,Dt5,Dt6,Dt7,Dt8 : TGetDtThr;
begin
Dt1 := TGetDtThr.Create( True,@ThreadDone);
Dt1.IdLoc := 'Job1';
Dt1.Range1 := 1;
Dt1.Range2 := 30;
Dt1.Name := 'T1';
Dt1.Start;
Dt2 := TGetDtThr.Create( True,@ThreadDone);
Dt2.IdLoc := 'Job2';
Dt2.Range1 := 1;
Dt2.Range2 := 30;
Dt2.Name := 'T2';
Dt2.Start;
Dt3 := TGetDtThr.Create( True,@ThreadDone);
Dt3.IdLoc := 'Job3';
Dt3.Range1 := 1;
Dt3.Range2 := 15;
Dt3.Name := 'T3';
Dt3.Start;
Dt4 := TGetDtThr.Create( True,@ThreadDone);
Dt4.IdLoc := 'Job3';
Dt4.Range1 := 16;
Dt4.Range2 := 30;
Dt4.Name := 'T4';
Dt4.Start;
Dt5 := TGetDtThr.Create( True,@ThreadDone);
Dt5.IdLoc := 'Job4';
Dt5.Range1 := 1;
Dt5.Range2 := 15;
Dt5.Name := 'T5';
Dt5.Start;
Dt6 := TGetDtThr.Create( True,@ThreadDone);
Dt6.IdLoc := 'Job4';
Dt6.Range1 := 16;
Dt6.Range2 := 30;
Dt6.Name := 'T6';
Dt6.Start;
Dt7 := TGetDtThr.Create( True,@ThreadDone);
Dt7.IdLoc := 'Job5';
Dt7.Range1 := 1;
Dt7.Range2 := 15;
Dt7.Name := 'T7';
Dt7.Start;
Dt8 := TGetDtThr.Create( True,@ThreadDone);
Dt8.IdLoc := 'Job5';
Dt8.Range1 := 16;
Dt8.Range2 := 30;
Dt8.Name := 'T8';
Dt8.Start;
end;
procedure TMainFrm.ThreadDone(Sender: TObject);
begin
ThreadsRunning := ThreadsRunning-1;
lblThr.Caption:= IntToStr(ThreadsRunning);
if (ThreadsRunning <= 0) then
begin
ShowMessage('Finished');
end;
end;