Показать сообщение отдельно
  #3  
Старый 22.09.2016, 13:20
mighty_man mighty_man вне форума
Прохожий
 
Регистрация: 22.09.2016
Сообщения: 7
Версия Delphi: Delphi 10
Репутация: 10
По умолчанию

Класс потока:
Код:
type TReadThread = class(TThread)
  private
    Filenames: TStrings;
    fData: PData;
  protected
    procedure Execute; override;
  public
    ProgressEnd: Integer;
    Progress: Integer;
    constructor Create(AFilenames: TStrings; AData: PData);
end;

Execute:
Код:
procedure TReadThread.Execute;
var f: TextFile;
s: string;
i: integer;
sl: TItemData;
begin
  for i:=0 to Filenames.Count-1  do
    begin
      AssignFile(f, Filenames[i]);
      Reset(f);
      sl:=TItemData.Create(Filenames[i]);
      fData.Items.Add(sl);

      ProgressEnd:=FileSize(f);
      Progress:=0;
      while not eof(f) do
        begin
          readln(f, s);
          fData.Items.Last.Items.Add(s);
          Progress:=Progress + Length(s);
        end;

      CloseFile(f);
    end;
end;
Ответить с цитированием