Skip to content

Latest commit

 

History

History
134 lines (118 loc) · 3.39 KB

README-ptBR.md

File metadata and controls

134 lines (118 loc) · 3.39 KB

CustomThread

CustomThread

Classe para facilitar a criação de Threads Anônimos em seu projeto

Instalação

Basta cadastrar no Library Path do seu Delphi o caminho da pasta SOURCE da biblioteca, ou se preferir, você pode usar o Boss (gerenciador de dependências do Delphi) para realizar a instalação:

boss install github.com/adrianosantostreina/CustomThread

⚡️ Quickstart

A unit CustomThread tem uma classe TLib que implementa o método CustomThread. Possui os seguintes parâmetros:

class procedure TLib.CustomThread(
      AOnStart, 
      AOnProcess, 
      AOnComplete: TProc; 
      AOnError: TProcedureExcept;
  const ADoCompleteWithError: Boolean
);
  • AOnStart = Processos a serem executados antes do processo principal
  • AOnProcess = Processo principal
  • AOnComplete = Processos a serem executados após o processo principal
  • AOnError = Processo a ser executado se ocorrerem erros
  • ADoCompleteWithError = Mensagem de exceção disparada se ocorrer erro

Usar

Declare CustomThread na seção Uses da unit onde você deseja fazer a chamada para o método da classe.

uses
  CustomThread,
procedure TForm2.Button1Click(Sender: TObject);
begin
  TLib.CustomThread(
    procedure()
    begin
      //Processes to run before the main process
    end,
    procedure()
    begin
      //Main Process
    end,
    procedure()
    begin
      //Processes to run after the main process
    end,
    procedure(const AException: string)
    begin
      //Process to run if errors occur
    end,
    True
  );
end;

Exemplo

[...]
    private
      { Private declarations }
      StepUnit: Single;
      Step : Single;
[...]


procedure TForm2.FormCreate(Sender: TObject);
begin
  StepUnit := 0;
  Step := 0;
  recProgress.Width := 0;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
  TLib.CustomThread(
    procedure()
    begin
      //Processes to run before the main process
      StepUnit := (recBack.Width / 10);
      recProgress.Width := Step;
    end,
    procedure()
    begin
      //Main Process
      repeat
        Step := Step + StepUnit;
        TThread.Synchronize(
          TThread.CurrentThread,
          procedure ()
          begin
            Sleep(100);
            recProgress.Width := Step;
          end
        );
      until recProgress.Width >= recBack.Width;
    end,
    procedure()
    begin
      //Processes to run after the main process
      Step := 0;
    end,
    procedure(const AException: string)
    begin
      //Process to run if errors occur
    end,
    True
  );
end;

Video

Watch the video

Idiomas da documentação

Inglês (en)
Português (ptBR)

⚠️ Licença

CustomThread é uma biblioteca gratuita e de código aberto licenciada sob a Licença MIT.