ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

[Resolvido] Problema - Thread não atualiza componente.

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
LuhanMeireles
Novato
Novato


Registrado: Sábado, 17 de Agosto de 2013
Mensagens: 2

MensagemEnviada: Sáb Ago 17, 2013 2:10 pm    Assunto: [Resolvido] Problema - Thread não atualiza componente. Responder com Citação

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
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
cyberdisk
Colaborador
Colaborador


Registrado: Domingo, 4 de Julho de 2010
Mensagens: 2391
Localização: São José dos Campos - SP

MensagemEnviada: Dom Ago 18, 2013 12:42 am    Assunto: Responder com Citação

exemplo

http://delphi.about.com/od/kbthread/a/thread-gui.htm

abraço
_________________
O conhecimento abre muitas portas
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
LuhanMeireles
Novato
Novato


Registrado: Sábado, 17 de Agosto de 2013
Mensagens: 2

MensagemEnviada: Dom Ago 18, 2013 11:42 am    Assunto: Responder com Citação

Obrigado Cyber, desta maneira que você me passou o exemplo funcionou perfeitamente.

Agradeço muito.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB