![]() |
|
#5
|
|||
|
|||
![]() Цитата:
Ну только чуть подробнее. В главной форме делаешь метод типа: Код:
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; Ну там инициализацию, собственно назначение метода из формы и т.д. допишешь самостоятельно. Идея примерно такая. Можно сделать более красиво, но это будет сложнее. |