procedure Parsing(URLToPars: string; aListView: TListView);
var
TempText: string;
HeadMatches, MsgMatches: TMatchCollection;
CountPagesMatch: TMatch;
i: Integer;
HeadRegularExprString: string;
MsgRegularExprString: string;
begin
// вот это место, которое хотелось бы видеть с в потоке и с индикатором:
<form1>.AniIndicator1.Enabled := true;
// вот это место, которое хотелось бы видеть с индикатором
TTask.Run(
procedure
begin
HTMLText := IdHTTP1.Get(URLToPars); // выполняем загрузку файла из интернета;
CountPagesMatch := TRegEx.Match(HTMLText, 'max="(.*?)".*value="(.*?)"');
HeadRegularExprString := 'class="date">(.*?)<.*?class="id">(.*?)<';
MsgRegularExprString := 'class="text">(.*?)<\/div>';
HeadMatches := TRegEx.Matches(HTMLText, HeadRegularExprString, [roIgnoreCase, roMultiLine]);
MsgMatches := TRegEx.Matches(HTMLText, MsgRegularExprString, [roIgnoreCase, roMultiLine]);
TThread.Synchronize(TThread.CurrentThread,
procedure
begin
aListView.Items.Clear;
if HeadMatches.Count = MsgMatches.Count then
begin
for i := 0 to HeadMatches.Count - 1 do
begin
TempText := HTMLClear(MsgMatches.Item.Groups[1].Value);
with aListView.Items.Add do
begin
Data['DateText'] := HeadMatches.Item.Groups[1].Value;
Data['CitateText'] := HeadMatches.Item.Groups[2].Value;
Data['MainText'] := TempText;
Data['imgCopy'] := il1.Bitmap(TSizeF.Create(36, 36), 0);
Data['imgSend'] := il1.Bitmap(TSizeF.Create(36, 36), 1);
end;
end;
end
else
ShowMessage('Ошибка загрузки данных!');
<form1>.AniIndicator1.Enabled := false;
end);
end);
end;