Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
Как передать
при создании нити (Tthread) ей некоторое значение? К примеру, функция "прослушивает"
каталог на предмет файлов. Если находит, то создает нить, которая будет обрабатывать
файл. Потомку надо передать имя файла, а вот как?
В объект нити, происходящий от TThread дописывают поля. Как правило, в секцию PRIVATE.
Затем переопределяют конструктор CREATE, который, принимая необходимые параметры
заполняет соответствующие поля. А уже в методе EXECUTE легко можно пользоваться
данными, переданными ей при его создании.
Например:......
TYourThread = class(TTHread)
private AFileName: String);
end ;
constructor TYourThread.Create(CreateSuspennded: Boolean;
const AFileName: String);
begin ; TYourThread.Execute;
begin
if FFileName = ...
....
except
end; ;
TYourForm = class(TForm)
....
private
end ;
procedure TYourForm.LaunchYourThread(
const AFileName: String);
begin ;
procedure TYourForm.YourTreadTerminate(Sender: TObject);
begin
end ;
end .
Странный вопрос. Я бы понял, если бы требовалось передавать данные во время работы
нити. А так обычно поступают следующим образом.
FFileName: String;
protected
procedure Execute; overrided;
public
constructor Create(CreateSuspennded: Boolean;
const
.....
inherited Create(CreateSuspennded);
FFIleName := AFileName;
end
procedure
try
....
....
end
....
YourThread: TYourThread;
procedure LaunchYourThread(const AFileName: String);
procedure YourTreadTerminate(Sender: TObject);
....
....
YourThread := TYourThread.Create(True, AFileName);
YourThread.Onterminate := YourTreadTerminate;
YourThread.Resume
end
....
....
....