Цитата:
Сообщение от Gudzik11
Можно по подробней ?
|
Ну только чуть подробнее.
В главной форме делаешь метод типа:
Код:
TForm1 = class(TForm)
...
procedure ShowProgress(APos, AMax : Integer);
...
procedure TForm1.ShowProgress(APos, AMax : Integer);
begin
ProgressBar1.MaxValue := AMax;
ProgressBar1.Position := APos;
end;
Теперь в модуле с потоком надо сделать вызов такой процедуры:
Код:
TProgressEvent = procedure (APos, AMax : Integer) Of Object;
TThread1 = class(TThread)
private
FPos, FMax : Integer;
FOnProgress : TProgressEvent;
procedure CallOnProgress; // нужно для вызова через Synchronize
property OnProgress : TProgressEvent read FOnProgress wride FOnProgress;
...
procedure TThread1.CallOnProgress;
begin
If Assigned(FOnProgress) Then FOnProgress(FPos,FMax);
end;
procedure TThread1.Execute;
begin
// Пример начального вызова
FPos := 0;
FMax := 0;
Synchronize(CallOnProgress);
...
end;
Ну там инициализацию, собственно назначение метода из формы и т.д. допишешь самостоятельно. Идея примерно такая. Можно сделать более красиво, но это будет сложнее.