LuhanMeireles Novato

Registrado: Sábado, 17 de Agosto de 2013 Mensagens: 2
|
Enviada: Sáb Ago 17, 2013 2:10 pm Assunto: [Resolvido] Problema - Thread não atualiza componente. |
|
|
Olá, estou tendo um problema com com minha Thread, eu criar a classe da thread conforme tutoriais aleatórios encontrados aqui mesmo. Minha intenção é através de uma thread atualizar um progressbar, entrão criei a thread ( a principio certa), porém ela executa o o SYNCHRONIZE mas não atualiza o progressbar, estou mandando o código da thread e do form que chama. Desde já fico muito grato pela ajuda.
unit uThread1;
interface
uses
Classes, Forms, SysUtils, Windows, Controls, Dialogs,
StdCtrls, ComCtrls;
type
Thread1 = class(TThread)
private
{ Private declarations }
nIntervalo : integer;
nContador : integer;
protected
procedure Execute; override;
procedure Atualiza;
public
constructor Create ( createSuspended: Boolean ; pnIntervalo : integer);
end;
implementation
uses uThread;
constructor Thread1.Create(CreateSuspended: Boolean; pnIntervalo: integer);
begin
inherited create ( createSuspended );
nIntervalo := pnIntervalo;
end;
procedure Thread1.Execute;
begin
{ Place thread code here }
nContador := 0;
While ( not Terminated ) and ( nContador < 100 ) do
begin
inc ( nContador );
Synchronize ( Atualiza );
Sleep ( 10 );
end;
end;
procedure Thread1.Atualiza;
begin
frmThread.ProgressBar1.Position := nContador;
end;
end.
Agora o código do form:
Unit uThread
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, uThread1;
type
TfrmThread = class(TForm)
Button1: TButton;
ProgressBar1: TProgressBar;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmThread: TfrmThread;
tThread1 : Thread1;
implementation
{$R *.DFM}
procedure TfrmThread.Button1Click(Sender: TObject);
begin
tThread1 := Thread1.Create( true , 10);
tThread1.FreeOnTerminate := true;
tThread1.Priority := tpNormal;
tThread1.Resume;
end;
end.
Editado pela última vez por LuhanMeireles em Dom Ago 18, 2013 11:43 am, num total de 1 vez |
|