1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| {Démarrer le contrôle}
procedure TFCtrlHtml.BtnStartThreadClick(Sender: TObject);
var
ListHtml, Html: TStringList;
I, RcCount, DivRc: Integer;
begin
BtnStartThread.Enabled := False;
BtnStopThread.Enabled := True;
RcCount := 0;
ListHtml := TStringList.Create;
Html := TStringList.Create;
DataSetXml.Active := True;
with DataSetXml do
while not Eof do
begin
ListHtml.Text := FieldByName('Html').Value;
for I := 0 to ListHtml.Count - 1 do
begin
Html.Add(ListHtml.Strings[I]);
end;
RcCount := RcCount + ListHtml.Count;
Stat.Panels[1].Text := IntTostr(RcCount);
ListHtml.Clear;
I := 0;
Next;
end;
DataSetXml.Active := False;
ListHtml.Free;
I := 0;
DivRc := RcCount div 2; {Divise la liste des URL en 2}
for I := 0 to DivRc do
begin {Liste url Html N°1}
SetLength(TabThread1, IArray[1] +1);
TabThread1[IArray[1]] := Html.Strings[I];
Inc(IArray[1]);
end;
Stat.Panels[3].Text := IntTostr(Length(TabThread1));
I := 0;
Inc(DivRc);
for I := DivRc to Html.Count - 1 do
begin {Liste url Html N°2}
SetLength(TabThread2, IArray[2] +1);
TabThread2[IArray[2]] := Html.Strings[I];
Inc(IArray[2]);
end;
Stat.Panels[5].Text := IntTostr(Length(TabThread2));
Html.Free;
{Créer le Thread N°1}
HandleThread1 := BeginThread(nil, 1024, @TThread1, nil, 0, Thread1);
SetThreadPriority(HandleThread1, THREAD_PRIORITY_HIGHEST);
{Créer le Thread N°2}
HandleThread2 := BeginThread(nil, 1024, @TThread2, nil, 0, Thread2);
SetThreadPriority(HandleThread2, THREAD_PRIORITY_HIGHEST);
end; |
Partager