Создание ссылки на процедуру с параметрами для потока - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть множество procedures, которые нужно вызвать из thread, то есть в другом Unit.Вызванный procedure зависит от того, где был создан thread.Можно ли передать ссылку на процедуру с параметрами в thread, сделать там что-нибудь, записать result в parameter из procedure и назвать это procedure?Как я мог это сделать?Вот часть моего кода:

procedure TForm1.One(mString: string; mInteger: Integer);
begin
//do some stuff...
  Memo1.Lines.Add(mString);
end;

procedure TForm1.Two(mString: string; mDouble1, mDouble2: Double);
begin
//do some stuff...
  Memo2.Lines.Add(mString);
end;

procedure TForm1.Three(mString: string; color: TColor; mInteger: Integer);
begin
//do some stuff....
  RichEdit1.SelAttributes.Color := color;
  RichEdit1.Text := mString;
end;

Код Thread Unit:

type
  myThread = class(TThread)
    protected
      procedure Execute; override;
    private
      procedure Sinchro;
    public
      constructor Create (some parameters); reintroduce; //reference to procedure need to be added here?
      destructor Destroy; override;
  end;
procedure myThread.Execute;
begin
  try
  //do some stuff...
  except
    on E: Exception do
    begin
    //handle exception
    end;
  end;
  try
  //do some stuff
  finally
    Synchronize(Sinchro);
  end;
end;
constructor myThread.Create(some parameters);
begin
  inherited Create(True);
  //handle parameters
  //handle reference to my procedure?
end;
procedure myThread.Sinchro;
begin
  //call to my procedure
end;
...