[delphi-br] Thread parece nao rodar em backgound

2010-02-10 Por tôpico Evaldo
Estou desenvolvendo uma tela de Aguarde para usar em uma aplicação que faz 
processamento pesado.

Para isso estou criando uma thread que exibe um form com um rxGifAnimator.

Até aqui tubo bem, a thread exibe o form com o gif animado.
Mas quando o processamento pesado na aplicação começa, a thread parece que para 
de processar:

//Aplicacao
   threadv := TThreadAguarde.Create(true);
   threadv.FreeOnTerminate := true;
   threadv.Priority := tpHighest;
   threadv.Resume;  

//quando começa a processr a thread para
  for I := 0 to 90 do
  begin
for k := 0 to 9000 do
begin

end;
  end;

//termina a thread
 threadv.terminate;


Execute da thread
procedure TThreadAguarde.Execute;
begin
  { Place thread code here }
 
Synchronize(Showform); //cria e exibe o form
  while not Self.Terminated do
  begin
sleep(100);   
  end;
  Synchronize(Closeform);//fecha o formulario
end;


Estou usando o
D delphi 2007
SO: Windows 7 32bits
Porcessador: Turion Mobile 64x2 



  

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread e ClientSocket1

2010-01-23 Por tôpico humberto sales de oliveira
Em 09/01/2010 23:55, klanp...@hotmail.com escreveu:

 Como é seu sistema humberto ?



desculpa a demora... o sistema trabalha +/- assim

Todos os eventos estao ligados ao ONClientRead.

exemplo:


procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
   Socket: TCustomWinSocket);
VAR
MSG : STRING;
begin
MSG := SOCKET.ReceiveText;
if pos('ARQ!',MSG) = 1 THEN
  begin
   Tratamento(Socket);
  end;
end;

procedure Tform1.Tratamento( Socket: TCustomWinSocket);
begin
socket.sendtext := 'Preparado para receber o arquivo'.
end;






[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] Thread atrasando carregamento de pacotes

2010-01-21 Por tôpico Willian Jhonnes L. dos Santos
Olá a todos.

Tenho uma aplicação 3 camadas que, em sua camada de servidor, está 
modularizadas em pacotes (BPLs). Um destes pacotes contém uma Thread que 
varre um diretório em busca de arquivos de integração. Por 
conveniência e pelo fato desta Thread não necessitar da intervenção do 
usuário, ela é inicializada juntamente com o pacote. O problema é que, 
durante a inicialização do pacote, a Thread trava a inicialização do 
restante dos pacotes. Tenho certeza disto pois removi a Thread da 
inicialização do pacote e todos foram carregados perfeitamente. E quando 
a Thread é inicializada com o pacote, sou obrigado a efetuar o 
carregamento dos pacotes 2 vezes. Mas antes que alguém questione, a 
Thread funciona perfeitamente, não gerando nenhuma exceção.

A chamada da inicialização está em [1] e o método Execute da Thread está 
em [2].

Alguém tem alguma idéia do que posso fazer para acertar esta situação?

[]'s

[1]
initialization
   TFileProcessing.Initialize;

[2]
procedure TFileProcessing.Execute;
begin
   inherited;
   sFiles := TStringList.Create;
   cIntgParams := TIntgParams.Create('', 0);

   while not Terminated do
   begin
 try
   cIntgParams.LoadParams;

   if FindFiles then
 ProcessFiles;
 finally
   sFiles.Clear;
 end;
 Sleep(cIntgParams.Interval);
   end;
end;

-- 

---
Att.:
Willian Jhonnes L. dos Santos
Analista/Desenvolvedor Object/Free Pascal
willianjhon...@yahoo.com.br
---
Seja livre. Use Linux.
Grupo de Usuários GNU/Linux de São José dos Pinhais
Linux user number 449753
---
Powered by Slackware Linux 12.2
Kernel 2.6.27.8-i686-core2
---



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread atrasando carregamento de pacotes

2010-01-21 Por tôpico Willian Jhonnes L. dos Santos
Ah, sim, claro! Esqueci de colocar o construtor da Thread!

[]'s

constructor TFileProcessing.Initialize;
begin
   Create(False);
   FreeOnTerminate := True;
   Priority := tpLowest;
   Execute;
end;

-- 

---
Att.:
Willian Jhonnes L. dos Santos
Analista/Desenvolvedor Object/Free Pascal
willianjhon...@yahoo.com.br
---
Seja livre. Use Linux.
Grupo de Usuários GNU/Linux de São José dos Pinhais
Linux user number 449753
---
Powered by Slackware Linux 12.2
Kernel 2.6.27.8-i686-core2
---



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread atrasando carregamento de pacotes

2010-01-21 Por tôpico Silvio Clecio
Nao sou muito bom em Threads, mas tente assim:

...
begin
// inherited; -- Pode remover, Execute eh abstrato ;)

while not Terminated do
begin
 try
   Sleep(cIntgParams.Interval);
   cIntgParams.LoadParams;
   if FindFiles then
 ProcessFiles;
 finally
   sFiles.Clear;
 end;
end;
...

Se você não usa FreeOnTerminate como True, faça o seguinte:

...
destructor TFileProcessing.Destroy;
begin
// Nao tem problemas, eh para evitar AV.
end;
...

Se nao funfar, monitore com o debugger em qual etapa esta travando.

--
Silvio Clécio

2010/1/21 Willian Jhonnes L. dos Santos willianjhon...@yahoo.com.br



 Ah, sim, claro! Esqueci de colocar o construtor da Thread!

 []'s

 constructor TFileProcessing.Initialize;
 begin
 Create(False);
 FreeOnTerminate := True;
 Priority := tpLowest;
 Execute;

 end;

 --

 ---
 Att.:
 Willian Jhonnes L. dos Santos
 Analista/Desenvolvedor Object/Free Pascal
 willianjhon...@yahoo.com.br
 ---
 Seja livre. Use Linux.
 Grupo de Usuários GNU/Linux de São José dos Pinhais
 Linux user number 449753
 ---
 Powered by Slackware Linux 12.2
 Kernel 2.6.27.8-i686-core2
 ---


Re: [delphi-br] Thread atrasando carregamento de pacotes

2010-01-21 Por tôpico Willian Jhonnes L. dos Santos
Em 21/01/2010 15:51, Silvio Clecio escreveu:
 Se nao funfar, monitore com o debugger em qual etapa esta travando.

E aí, Silvio...

É, não rolou... O problema é que o debbuger não vai ajudar nesta 
questão, haja visto que ele vai causar o atraso na carga dos pacotes da 
mesma maneira (é, eu já tentei debugar).

Vou continuar tentando encontrar uma solução...

[]'s

-- 

---
Att.:
Willian Jhonnes L. dos Santos
Analista/Desenvolvedor Object/Free Pascal
willianjhon...@yahoo.com.br
---
Seja livre. Use Linux.
Grupo de Usuários GNU/Linux de São José dos Pinhais
Linux user number 449753
---
Powered by Slackware Linux 12.2
Kernel 2.6.27.8-i686-core2
---



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread e ClientSocket1

2010-01-10 Por tôpico klanpaia
Como é seu sistema humberto ?

--
From: humberto sales de oliveira humberto_...@yahoo.com.br
Sent: Saturday, January 09, 2010 8:32 PM
To: delphi-br@yahoogrupos.com.br
Subject: Re: [delphi-br] Thread e ClientSocket1

 Vou ficar te devendo com thread, mas o sistema de atualizacao que
 desenvolvi ele faz simultaneamente todos juntos sem thread.

 klanp...@hotmail.com escreveu:
 Basicamente sim, mas não um chat qualquer é um chat dinâmico que trabalha
 com Socket + Thread. Veja em um chat comum digamos que tenha 200 pessoas
 conectado e você envia uma mensagem, você terá que esperar o socket 
 tratar
 todos os demais pedidos antes de vc ser atendido.

 Usando Thread você não fica em uma fila, passa a ser atendido
 individualmente, atendido por um socket criado em tempo de execução  e 
 esse
 socket pertence somente  a você o problema é se o Cliente 1, Socket 1 
 quiser
 falar com o Cliente 2,  Socket 2 ? Saberia como faze-lo usando Thread?

 --
 From: humberto sales de oliveira humberto_...@yahoo.com.br
 Sent: Friday, January 08, 2010 8:55 PM
 To: delphi-br@yahoogrupos.com.br
 Subject: Re: [delphi-br] Thread e ClientSocket1


 vc quer um chat e isso?



 

 -- 
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 





 __ Informação do ESET NOD32 Antivirus, versão da vacina 4755
 (20100108) __

 A mensagem foi verificada pelo  ESET NOD32 Antivirus.

 http://www.eset.com





 __ Informação do ESET NOD32 Antivirus, versão da vacina 4755 
 (20100108) __

 A mensagem foi verificada pelo  ESET NOD32 Antivirus.

 http://www.eset.com









 

 -- 
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 





 __ Informação do ESET NOD32 Antivirus, versão da vacina 4757 
 (20100109) __

 A mensagem foi verificada pelo  ESET NOD32 Antivirus.

 http://www.eset.com


 

__ Informação do ESET NOD32 Antivirus, versão da vacina 4757 (20100109) 
__

A mensagem foi verificada pelo  ESET NOD32 Antivirus.

http://www.eset.com





Re: [delphi-br] Thread e ClientSocket1

2010-01-09 Por tôpico klanpaia
Basicamente sim, mas não um chat qualquer é um chat dinâmico que trabalha 
com Socket + Thread. Veja em um chat comum digamos que tenha 200 pessoas 
conectado e você envia uma mensagem, você terá que esperar o socket tratar 
todos os demais pedidos antes de vc ser atendido.

Usando Thread você não fica em uma fila, passa a ser atendido 
individualmente, atendido por um socket criado em tempo de execução  e esse 
socket pertence somente  a você o problema é se o Cliente 1, Socket 1 quiser 
falar com o Cliente 2,  Socket 2 ? Saberia como faze-lo usando Thread?

--
From: humberto sales de oliveira humberto_...@yahoo.com.br
Sent: Friday, January 08, 2010 8:55 PM
To: delphi-br@yahoogrupos.com.br
Subject: Re: [delphi-br] Thread e ClientSocket1

 vc quer um chat e isso?



 

 -- 
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 





 __ Informação do ESET NOD32 Antivirus, versão da vacina 4755 
 (20100108) __

 A mensagem foi verificada pelo  ESET NOD32 Antivirus.

 http://www.eset.com


 

__ Informação do ESET NOD32 Antivirus, versão da vacina 4755 (20100108) 
__

A mensagem foi verificada pelo  ESET NOD32 Antivirus.

http://www.eset.com





Re: [delphi-br] Thread e ClientSocket1

2010-01-09 Por tôpico humberto sales de oliveira
Vou ficar te devendo com thread, mas o sistema de atualizacao que 
desenvolvi ele faz simultaneamente todos juntos sem thread.

klanp...@hotmail.com escreveu:
 Basicamente sim, mas não um chat qualquer é um chat dinâmico que trabalha 
 com Socket + Thread. Veja em um chat comum digamos que tenha 200 pessoas 
 conectado e você envia uma mensagem, você terá que esperar o socket tratar 
 todos os demais pedidos antes de vc ser atendido.

 Usando Thread você não fica em uma fila, passa a ser atendido 
 individualmente, atendido por um socket criado em tempo de execução  e esse 
 socket pertence somente  a você o problema é se o Cliente 1, Socket 1 quiser 
 falar com o Cliente 2,  Socket 2 ? Saberia como faze-lo usando Thread?

 --
 From: humberto sales de oliveira humberto_...@yahoo.com.br
 Sent: Friday, January 08, 2010 8:55 PM
 To: delphi-br@yahoogrupos.com.br
 Subject: Re: [delphi-br] Thread e ClientSocket1

   
 vc quer um chat e isso?



 

 -- 
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 





 __ Informação do ESET NOD32 Antivirus, versão da vacina 4755 
 (20100108) __

 A mensagem foi verificada pelo  ESET NOD32 Antivirus.

 http://www.eset.com



 

 __ Informação do ESET NOD32 Antivirus, versão da vacina 4755 
 (20100108) __

 A mensagem foi verificada pelo  ESET NOD32 Antivirus.

 http://www.eset.com




   




[delphi-br] Thread e ClientSocket1

2010-01-08 Por tôpico klanpaia
Pessoal criei um servidor que a cada conexão feita pelo cliente cria uma 
Thread com funções de resposta ao cliente. Mas estou querendo fazer as 
Thread se comunicarem entre si. Alguém sabe de alguma maneira do socket 
mandar mensagem pro cliente 2 ou 3 como identificar as thread criadas? 



Re: [delphi-br] Thread e ClientSocket1

2010-01-08 Por tôpico humberto sales de oliveira
vc quer um chat e isso?



[delphi-br] Thread - Cpu 100%

2009-12-15 Por tôpico Arrobba Sistemas
Bom dia

 

Temos uma thread, que tem que ficar rodando direto , lendo uma banco de
dados de despertador,

 

 

Qual a prioridade que devemos colocar, para que ele não fique utilizando
100% da CPU.

 

 

Ou vocês tem alguma outra dica que possa me ajudar, 

 

 

 

 

Antonio C. de M. Pires

 



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread - Cpu 100%

2009-12-15 Por tôpico Jackson Gomes - ToolsComps

 Qual a prioridade que devemos colocar, para que ele não fique utilizando
 100% da CPU.
 Ou vocês tem alguma outra dica que possa me ajudar,

Use Sleep(10) ou outro valor qualquer.

Jackson Gomes
ToolsComps - Controle de Usuários para Desenvolvedores CodeGear
Web Site: http://www.toolsandcomps.com
Nosso Fórum: http://groups.yahoo.com/group/toolsandcomps
e-mail: jack...@toolsandcomps.com
Fone: 27 3389 1138 - 8811 0324

http://jacklovesdelphi.blogspot.com - Delphi, Intraweb, etc

Devhost - Webhost para desenvolvedores Delphi
http://www.devhost.com.br
devh...@devhost.com.br




Re: [delphi-br] Thread - Cpu 100%

2009-12-15 Por tôpico Nazareno Neto
vc poder usar um componente ttime, nun sei se para o q vc quer vai dar
certo!
na configuracao vc colocar para ele testar o tempo de 1 em 1 segundos, e se
for a hora por exemplo q vc quer, faz o q tem q fazer!

2009/12/15 Arrobba Sistemas del...@arrobbasistemas.com.br



 Bom dia

 Temos uma thread, que tem que ficar rodando direto , lendo uma banco de
 dados de despertador,

 Qual a prioridade que devemos colocar, para que ele não fique utilizando
 100% da CPU.

 Ou vocês tem alguma outra dica que possa me ajudar,

 Antonio C. de M. Pires

 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
Nazareno Neto
Programador Delphi e Firebird

http://www.delphisistemas.com.br
nazarenon...@hotmail.com
nazareno.nobr...@gmail.com


[As partes desta mensagem que não continham texto foram removidas]





-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
delphi-br-ow...@yahoogrupos.com.br
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
delphi-br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [delphi-br] Thread - Cpu 100%

2009-12-15 Por tôpico José Mário Silva Guedes
Assim como o Jackson, sugiro o uso do Sleep(10) e se for uma aplicação GUI,
colocar um Application.ProcessMessages e se for um serviço do Windows,
colocar Service.ServiceThread.ProcessRequest(False);

É como faço por aqui...


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread - Cpu 100%

2009-12-15 Por tôpico Luiz Escobar
Mas vc tga lendo isso em LOOP ???
bota um temporizador pra ler a cada 30 segundos..
ou muda a prioridade de thread para um valor mais baixo mas não muito pq se 
não dependendo de como foi montada ela pode falhar


[]s
Luiz Escobar - http://www.megasistema.com.br

Harbour 2.0.0beta3(Rev.13200) (DbfNtx+MySQL)
MiniGUI 1.7 Extended (Build 78)-2009.12.14
BCC 5.8.2 (Turbo C++ Explorer 2006)

XAMPP  1.7.1 (Apache+MySQL+PHP+(Linux/Win))
FLEX   3.0 (iniciante)

Delphi ( 6 PRO  7 Ent ) (DBF/NTX+MySQL)

AMD (AiMeuDeus) ? Ñ!, Sou + Intel





From: Jackson Gomes - ToolsComps 
Sent: Tuesday, December 15, 2009 12:13 PM
To: delphi-br@yahoogrupos.com.br 
Subject: Re: [delphi-br] Thread - Cpu 100%


  

 Qual a prioridade que devemos colocar, para que ele não fique utilizando
 100% da CPU.
 Ou vocês tem alguma outra dica que possa me ajudar,

Use Sleep(10) ou outro valor qualquer.

Jackson Gomes
ToolsComps - Controle de Usuários para Desenvolvedores CodeGear
Web Site: http://www.toolsandcomps.com
Nosso Fórum: http://groups.yahoo.com/group/toolsandcomps
e-mail: jack...@toolsandcomps.com
Fone: 27 3389 1138 - 8811 0324
--
http://jacklovesdelphi.blogspot.com - Delphi, Intraweb, etc
--
Devhost - Webhost para desenvolvedores Delphi
http://www.devhost.com.br
devh...@devhost.com.br





[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] Thread para mostrar animação em flash

2009-12-08 Por tôpico Edelson Regis de Lima
Boa tarde pessoal!

Alguem já fez alguma telinha do tipo: Processando, aguarde..., utilizando
uma animação em flash?
Eu to apanhando aqui pra fazer o swf rodar em paralelo com processamento...
ele simplesmente trava, só roda depois que termina o processamento.
Estou usando Thread, mas não está funcionando.
Já testei com os componentes TShockwaveFlash e TShockwaveFlashEx.
Se alguém tiver alguma dica ou um exemplo, eu agradeço.

Abraços,

Edelson.


[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] Thread + Parâmetros

2009-07-20 Por tôpico Jhosef Marks
Boa tarde pessoal.
Sguinte, como eu faço para passar parametros para dentro de uma thread?

Eu to criando uma thread generica e quero q ela dispare funções diferentes
de acordo com os parametros que eu vou passar para ela.

Mas não consegui pensar em como fazer isso sem usar variaveis globais.

Alguma sugestão?

-- 
_
Jhosef Marks de Carvalho
Delphi Developer
Linux User: #491431
Ubuntu User: #27705
Blog: http://www.jhosefmarks.com.br
Empresa: http://www.cdfsoftwares.com.br
Lista: http://groups.google.com/group/soumaisdelphi

#
CAMPANHA POR UMA INTERNET SEGURA
Proteja o endereço de seus amigos como estou protegendo o seu. Ao enviar
mensagens use SEMPRE o Cco (cópia oculta).
Assim TODOS os endereços estarão preservados. E, claro, antes de encaminhar
um e-mail, delete todas as informações que apareçam no corpo do e-mail e que
possam ser usadas por hackers.
#


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread + Parâmetros

2009-07-20 Por tôpico José Mário Silva Guedes
Acredito que você possa reescrever o Create da classe TThread. É uma opção?


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread + Parâmetros

2009-07-20 Por tôpico Diogo de Oliveira Cunha
Jhosef, boa tarde.

Você pode também declarar uma variável global em seu software que será
manipulada somente pela thread.

Assim, Você coloca sua thread sempre olhando o conteúdo desta variável, e,
quando for o momento de passar algum parâmetro você atribui o parametro a
variável.

Espero ter ajudado.

Abraços

2009/7/20 José Mário Silva Guedes jmariogue...@gmail.com



 Acredito que você possa reescrever o Create da classe TThread. É uma opção?


 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
Não te esqueças de que o arado, dilacerando o solo, acaba igualmente
desmantelado e ferido, entretanto, desse choque de forças surge o pão que te
supre a mesa.


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread, como sabe r se ainda está sendo executada?

2009-06-10 Por tôpico Alexandre Rodrigues
Verifique o parâmetro Terminated da thread.

EmbarcaDelphi escreveu:
 
 
 
 
 Queria, ao sair do aplicativo, saber se minha Thread ainda está em
 execução, e se estiver, quero parar.
 
 Será necessário isso ou quando finalizar o aplicativo ela
 automaticamente finaliza?
 
 Grato.
 
 



Re: [delphi-br] Thread, como saber se ainda está se ndo executada?

2009-06-10 Por tôpico José Mário Silva Guedes
A forma mais correta na minha opinião é um código mais ou menos como o
abaixo:
MinhaThread.Terminate;
MInhaThread.WaitFor;
FreeAndNil(MinhaThread);

Porém há um macete que demorei a entender. A classe TThread possui um evento
denominado OnTerminate. Para o WaitFor funcionar a contento, este evento tem
que estar setado, nem que seja para dar um simples Sleep(10) ou algo assim.

É como faço por aqui.


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread, como sabe r se ainda está sendo executada?

2009-06-10 Por tôpico Alexandre Rodrigues
Pode-se usar também a propriedade FreeOnTerminate, ai não é necessário 
usar o WaitFor.

José Mário Silva Guedes escreveu:
 
 
 
 A forma mais correta na minha opinião é um código mais ou menos como o
 abaixo:
 MinhaThread.Terminate;
 MInhaThread.WaitFor;
 FreeAndNil(MinhaThread);
 
 Porém há um macete que demorei a entender. A classe TThread possui um evento
 denominado OnTerminate. Para o WaitFor funcionar a contento, este evento tem
 que estar setado, nem que seja para dar um simples Sleep(10) ou algo assim.
 
 É como faço por aqui.
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 



Re: [delphi-br] Thread, como saber se ainda está se ndo executada?

2009-06-10 Por tôpico José Mário Silva Guedes
Isso é verdade, porém o Terminate não garante que o Thread terminou, apenas
seta o Terrminated para True. Ou seja, o programa pode ser fechada com a
Thread ainda em execução e dependendo do código isso pode ser ruim.
O WaitFor vai garantir que a Thread realmente saiu do ar, podendo-se
encerrar a aplicação com tranquilidade.


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread, como sabe r se ainda está sendo executada?

2009-06-10 Por tôpico Alexandre Rodrigues
Verdade José

Dependendo que como a thread foi implementada, se ela acessar alguma 
coisa do resto do programa, pode ser um grande problema.

José Mário Silva Guedes escreveu:
 
 
 
 Isso é verdade, porém o Terminate não garante que o Thread terminou, apenas
 seta o Terrminated para True. Ou seja, o programa pode ser fechada com a
 Thread ainda em execução e dependendo do código isso pode ser ruim.
 O WaitFor vai garantir que a Thread realmente saiu do ar, podendo-se
 encerrar a aplicação com tranquilidade.
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 



[delphi-br] Thread, como saber se ainda está sendo exec utada?

2009-06-09 Por tôpico EmbarcaDelphi

Queria, ao sair do aplicativo, saber se minha Thread ainda está em 
execução, e se estiver, quero parar.

Será necessário isso ou quando finalizar o aplicativo ela 
automaticamente finaliza?


Grato.


[delphi-br] Thread + IDHTTP + IBQuery

2009-05-04 Por tôpico Magnun Oliveira
Olá galera ... estou com uma duvida com threads.
Tenho uma tabela com cerca de 5000 produtos. Preciso cruza-los uma a um. E 
fazer um teste no site da empresa, e receber uma mensagem de confirmado ou nao.

Para isso fiz 2 querys, ambas selecionando todos os produtos da tabela 
produtos. ibq_Origem e ibq_destino. Depois fiz dois whiles pra cruzar tudo 
isso, Entao, a cada passagem pelo laço, envio a origem e destino pro site e 
recebo o retorno. E insiro na tabela atravez de uma outra query (ibq_importar).

Porem esse retorno do site da um lag de uns 0,6 segundos. Resultando em 
aproximadamente 174 dias pra efetuar esse processamento. Obiviamente nao rola.

Pensei ... separo isso em threads, para processar isso umas 20 vezes 
separadamente e agilizar o processo, e iniciei os testes. 

Coloquei dois querys p/ origem e separei 2500 pra cada. Coloquei dois p/ 
destino e importar (efetua a insercao), coloquei dois labels p/ origem e 
destino p/ vizualizar na tela a operacao da thread.


Porem se eu chamo a primeira thread, executa normal.
Se eu chamo a segunda, o programa congela a tela, como se estivesse fazendo um 
loop sem as threads e tmb nao aparece o processamento da segunda thread, nos 
labels.

To fazendo alguma c*a*gada ?


***
Form1
***

procedure TForm1.btn_Thread1Click(Sender: TObject);
var
  T1: Thread_;
begin
  T1  := Thread_.Criar(ibq_Origem1, ibq_Destino1, ibq_Importar1, IDH1, 
lbl_Origem1, lbl_Destino1);
end;

procedure TForm1.btn_Thread2Click(Sender: TObject);
var
  T2: Thread_;
begin
  T2  := Thread_.Criar(ibq_Origem2, ibq_Destino2, ibq_Importar2, IDH2, 
lbl_Origem2, lbl_Destino2);
end;




**
Thread_
**

type
  Thread_ = class(TThread)
  private
{ Private declarations }
ibq_Origem, ibq_Destino, ibq_Importar: TIBQuery;
IDHTTP: TIDHTTP;
lbl_Origem, lbl_Destino: TLabel;
  protected
procedure Execute; override;
procedure Importar;
function Pesquisar(Origem, Destino: String): String;

  public
constructor Criar(Origem, Destino, Importar: TIBQuery; IDH: TIDHTTP; 
Label_Origem, Label_Destino: TLabel);

  end;



implementation

uses Unit1;

{ Important: Methods and properties of objects in visual components can only be
  used in a method called using Synchronize, for example,

  Synchronize(UpdateCaption);

  and UpdateCaption could look like,

procedure Thread_.UpdateCaption;
begin
  Form1.Caption := 'Updated in a thread';
end; }

{ Thread_ }

constructor Thread_.Criar(Origem, Destino, Importar: TIBQuery; IDH: TIDHTTP; 
Label_Origem, Label_Destino: TLabel);
var
Select: String;
begin

  Create(False);
 
  ibq_Origem := Origem;
  ibq_Destino := Destino;
  ibq_Importar := Importar;
  IDHTTP := IDH;
  lbl_Origem := Label_Origem;
  lbl_Destino := Label_Destino;

  FreeOnTerminate := True;

end;


function Thread_.Pesquisar(Origem, Destino: String): String;
var   
HTML: String;
begin
// rotina do como chegar

  Result := '';

  Origem := AnsiReplaceStr(Origem, ' ', '+');
  Destino := AnsiReplaceStr(Destino, ' ', '+');

  HTML := 'urldosite1' + Origem + '2' + Destino;



  try

Html := IDHTTP.Get(Html);

if Pos('Confirmado', Html)  0 then
Result := HTML
else
if Pos(HTML, 'Não Confirmado')  0 then
Result := '';

  except

on E: Exception do
Result := E.Message;

  end;

end;


procedure Thread_.Execute;
begin


  { Place thread code here }


  ibq_Origem.Open;
  ibq_Destino.Open;

  while not (ibq_Origem.Eof) do
  begin

ibq_Destino.First;

while not (ibq_Destino.Eof)do
begin

  Synchronize(Importar);
  // Coloquei essa linha p/ testar se estava atualizando a tela a cada 
processamento de cada thread
  Form1.Caption := ibq_Origem.Name + ' - ' + FormatDateTime('HH:MM:SS:MM', 
Now);
 // form1.ibtransaction1.CommitRetaining;  // da erro se deixar essa linha

  ibq_Destino.Next;

end;

ibq_Origem.Next;

  end;



end;

procedure Thread_.Importar;
var
Origem, Destino: String;
Retorno: String;
begin

  Origem := ibq_Origem.FieldByName('PRODUTO').AsString;
  Destino := ibq_Destino.FieldByName('PRODUTO').AsString ;

  Retorno := Pesquisar(Origem, Destino);

  ibq_Importar.ParamByName('ID').AsInteger := 0;
  ibq_Importar.ParamByName('ID_PRODUTO_ORIGEM').AsInteger := 
ibq_Origem.FieldByName('ID_PRODUTO').AsInteger;
  ibq_Importar.ParamByName('ID_PRODUTO_DESTINO').AsInteger := 
ibq_Destino.FieldByName('ID_PRODUTO').AsInteger;

  if Retorno = '' then
  begin

ibq_Importar.ParamByName('RESULT').IsNull;
ibq_Importar.ParamByName('STATUS').AsString := 'N';

  end
  else
  if Pos('Confirmado', Retorno)  0 then
  begin

ibq_Importar.ParamByName('RESULT').AsString := Retorno;
ibq_Importar.ParamByName('STATUS').AsString := 'S';

  end
  else
  begin

ibq_Importar.ParamByName('RESULT').AsString := Retorno;

Re: [delphi-br] Thread + IDHTTP + IBQuery

2009-05-04 Por tôpico José Mário Silva Guedes
É problemático trabalhar com Threads usando apenas uma conexão com banco de
dados. Pelo que já sofri, o ideal que a Thread tenha sua própria conexão.

Alerto também para um problema que talvez você venha a ter, é que um exe não
pode ter mais que 2000 threads dependendo do cenário.


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread + IDHTTP + IBQuery

2009-05-04 Por tôpico Magnun Oliveira
Realmente percebi isso, centralizei toda a conexao em um DataModule e 
instanciei um p/ cada thread.
Retirei tmb a rotina do metodo syncronize e funcionou corretamente.

Testei com 2 threads neste novo modelo, e o ganho em performance já foi de 10%. 
Farei mais testes e acho q trabalharei com um limite de 50 threads.

Obrigado.


From: José Mário Silva Guedes 
Sent: Monday, May 04, 2009 5:04 PM
To: delphi-br@yahoogrupos.com.br 
Subject: Re: [delphi-br] Thread + IDHTTP + IBQuery





É problemático trabalhar com Threads usando apenas uma conexão com banco de
dados. Pelo que já sofri, o ideal que a Thread tenha sua própria conexão.

Alerto também para um problema que talvez você venha a ter, é que um exe não
pode ter mais que 2000 threads dependendo do cenário.

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] Thread com janelas modal

2008-12-22 Por tôpico Weverton Gomes
Caros,

Estou fazendo uma aplicação onde algumas opções poderão ter seu
processamento feito em Thread, liberando o sistema para uso. Porém, tenho um
problema: depois de iniciar o processamento em thread, se eu abro alguma
janela modal, o processamento da thread para e só continuar após fechar a
janela modal. Alguém tem alguma idéia de como contornar essa situação??

Grato,

-- 
Weverton Gomes de Morais
Tecnólogo em Redes de Comunicação
Desenvolvedor Delphi
Entusiasta Ruby/Rails
Todos juntos somos fortes


[As partes desta mensagem que não continham texto foram removidas]



RE: [delphi-br] Thread com janelas modal

2008-12-22 Por tôpico Rubem Nascimento da Rocha


Só olhando o código da tua thread pra saber o que pode estar acontecendo de 
errado!
Sds.


 To: delphi-br@yahoogrupos.com.br
 From: wever...@gmail.com
 Date: Mon, 22 Dec 2008 10:35:52 -0200
 Subject: [delphi-br] Thread com janelas modal



 Caros,



 Estou fazendo uma aplicação onde algumas opções poderão ter seu

 processamento feito em Thread, liberando o sistema para uso. Porém, tenho um

 problema: depois de iniciar o processamento em thread, se eu abro alguma

 janela modal, o processamento da thread para e só continuar após fechar a

 janela modal. Alguém tem alguma idéia de como contornar essa situação??



 Grato,



 --

 Weverton Gomes de Morais

 Tecnólogo em Redes de Comunicação

 Desenvolvedor Delphi

 Entusiasta Ruby/Rails

 Todos juntos somos fortes

_
Cansado de espaço para só 50 fotos? Conheça o Spaces, o site de relacionamentos 
com até 6,000 fotos!
http://www.amigosdomessenger.com.br

Res: [delphi-br] Thread com janelas modal

2008-12-22 Por tôpico Elazar Dornelles Ceza
Embora acredito ser possivel fazer o que vc imagina usando um modal. (se 
entendi direito).

Existe um meio de exibir uma janela com o show, de forma que ela tenha os 
mesmos efeitos de uma modal (com efeito por cima das outras assim como uma 
modal)...e que não interrompe o fluxo de execução, então voce poderia mostrar 
esta janela, chamar suas threadse quando tudo terminar, a sua janela 
'modal' poderia ser finalizada.

pra fazer isto voce pode usar as funcões DisableTaskWindows e 
EnableTaskWindows, de uma googlada para maiores informações :-))







De: Weverton Gomes wever...@gmail.com
Para: delphi-br@yahoogrupos.com.br
Enviadas: Segunda-feira, 22 de Dezembro de 2008 9:35:52
Assunto: [delphi-br] Thread com janelas modal


Caros,

Estou fazendo uma aplicação onde algumas opções poderão ter seu
processamento feito em Thread, liberando o sistema para uso. Porém, tenho um
problema: depois de iniciar o processamento em thread, se eu abro alguma
janela modal, o processamento da thread para e só continuar após fechar a
janela modal. Alguém tem alguma idéia de como contornar essa situação??

Grato,

-- 
Weverton Gomes de Morais
Tecnólogo em Redes de Comunicação
Desenvolvedor Delphi
Entusiasta Ruby/Rails
Todos juntos somos fortes

[As partes desta mensagem que não continham texto foram removidas]

 


  Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread para o idFTP

2008-12-12 Por tôpico Joel Alexandre
Resolvido. Valeu

[]Os Joel

 Bom dia pessoal,

 Estou utilizando o idFTP da Indy. O processo está funcionando 
 corretamente. Estou conseguindo enviar os arquivos. Meu problema está no 
 travamento da aplicação no momento do envio. Tentei utilizar Thread sem 
 sucesso (até por falta de conhecimento mesmo).
 Alguem teria uma sugestão pra destravar a aplicação no momento do 
 upload/download ?


 Abraços a todos
 Joel

 

   



Res: [delphi-br] Thread para o idFTP

2008-12-12 Por tôpico Berdam
dá um refresh no form

 

Uberdam Cavaletti
Formado em Tecnologia da Informação - Unoesc - Xxe
Pós-graduado em desenvolvimento Java - Unoesc - Xxe

http://www.curricular.com.br/berdam

Visite
http://passandoveneno.blogspot.com







De: Joel Alexandre joel_alexandre2...@yahoo.com.br
Para: delphi-br@yahoogrupos.com.br
Enviadas: Sexta-feira, 12 de Dezembro de 2008 11:52:56
Assunto: Re: [delphi-br] Thread para o idFTP


Resolvido. Valeu

[]Os Joel

 Bom dia pessoal,

 Estou utilizando o idFTP da Indy. O processo está funcionando 
 corretamente. Estou conseguindo enviar os arquivos. Meu problema está no 
 travamento da aplicação no momento do envio. Tentei utilizar Thread sem 
 sucesso (até por falta de conhecimento mesmo).
 Alguem teria uma sugestão pra destravar a aplicação no momento do 
 upload/download ?


 Abraços a todos
 Joel

  - - --

 




  Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread para o idFTP

2008-12-12 Por tôpico Ulisses
Boa tarde!

Como você resolveu o problema?

Obrigado.

Ulisses

  - Original Message - 
  From: Joel Alexandre 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Friday, December 12, 2008 11:52 AM
  Subject: Re: [delphi-br] Thread para o idFTP


  Resolvido. Valeu

  []Os Joel

   Bom dia pessoal,
  
   Estou utilizando o idFTP da Indy. O processo está funcionando 
   corretamente. Estou conseguindo enviar os arquivos. Meu problema está no 
   travamento da aplicação no momento do envio. Tentei utilizar Thread sem 
   sucesso (até por falta de conhecimento mesmo).
   Alguem teria uma sugestão pra destravar a aplicação no momento do 
   upload/download ?
  
  
   Abraços a todos
   Joel
  
   
  
   



   

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread para o idFTP

2008-12-12 Por tôpico Joel Alexandre
Com Thread mesmo Ulisses. Só que usando corretamente.
To com problema agora pra cancelar o andamento do upload, mas até tirei 
essa opcão.

[]Os Joel

 Boa tarde!

 Como você resolveu o problema?

 Obrigado.

 Ulisses

   - Original Message - 
   From: Joel Alexandre 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Friday, December 12, 2008 11:52 AM
   Subject: Re: [delphi-br] Thread para o idFTP


   Resolvido. Valeu

   []Os Joel

Bom dia pessoal,
   
Estou utilizando o idFTP da Indy. O processo está funcionando 
corretamente. Estou conseguindo enviar os arquivos. Meu problema está no 
travamento da aplicação no momento do envio. Tentei utilizar Thread sem 
sucesso (até por falta de conhecimento mesmo).
Alguem teria uma sugestão pra destravar a aplicação no momento do 
upload/download ?
   
   
Abraços a todos
Joel
   

   






 [As partes desta mensagem que não continham texto foram removidas]


 

   



[delphi-br] Thread para o idFTP

2008-12-11 Por tôpico Joel Alexandre
Bom dia pessoal,

Estou utilizando o idFTP da Indy. O processo está funcionando 
corretamente. Estou conseguindo enviar os arquivos. Meu problema está no 
travamento da aplicação no momento do envio. Tentei utilizar Thread sem 
sucesso (até por falta de conhecimento mesmo).
Alguem teria uma sugestão pra destravar a aplicação no momento do 
upload/download ?


Abraços a todos
Joel


Res: [delphi-br] Thread

2008-11-21 Por tôpico Luciano Calenzani Simões
http://pt.wikipedia.org/wiki/Thread_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)

 Luciano Calenzani Simões







De: Rubens Antunes [EMAIL PROTECTED]
Para: delphi-br@yahoogrupos.com.br
Enviadas: Quinta-feira, 20 de Novembro de 2008 12:50:06
Assunto: [delphi-br] Thread




 
tenho visto falar de Thread aqui na lista e gostaria de saber o que é uma 
Thread e para que serve uma thread?


  Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]



RE: [delphi-br] Thread

2008-11-21 Por tôpico Rubem Nascimento da Rocha


http://br.groups.yahoo.com/group/lista-delphi/files/Apostilas/
 
Lá tem uma apostila (em inglês) que eu postei falando sobre threads e como 
implementá-las em Delphi.
 
Sds.


To: delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Thu, 20 Nov 2008 07:50:06 -0800
Subject: [delphi-br] Thread



Olá pessoal 
 
tenho visto falar de Thread aqui na lista e gostaria de saber o que é uma 
Thread e para que serve uma thread?
 
Obrigado
 
Rubens Antunes
_
Confira vídeos com notícias do NY Times, gols direto do Lance, videocassetadas 
e muito mais no MSN Video!
http://video.msn.com/?mkt=pt-br

RE: [delphi-br] Thread

2008-11-21 Por tôpico Rubem Nascimento da Rocha

Ah, ia me esquecendo!
 
http://en.wikipedia.org/wiki/Thread_(computer_science)
 
Pronto, agora vc vai saber o que é uma thread!
Sds.


To: delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Fri, 21 Nov 2008 12:28:40 +
Subject: RE: [delphi-br] Thread


http://br.groups.yahoo.com/group/lista-delphi/files/Apostilas/

Lá tem uma apostila (em inglês) que eu postei falando sobre threads e como 
implementá-las em Delphi.

Sds.

To: delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Thu, 20 Nov 2008 07:50:06 -0800
Subject: [delphi-br] Thread

Olá pessoal 

tenho visto falar de Thread aqui na lista e gostaria de saber o que é uma 
Thread e para que serve uma thread?

Obrigado

Rubens Antunes
_
Cansado de espaço para só 50 fotos? Conheça o Spaces, o site de relacionamentos 
com até 6,000 fotos!
http://www.amigosdomessenger.com.br

Re: [delphi-br] Thread

2008-11-21 Por tôpico Janise Dantas
Vocês são bons, mas quando quando querem ser chatos, vocês são ótimos!!!

Se dão ao trabalho de responder nada, não seria melhor ficar em silêncio? 
(assim como não fiz agora?!rsrsrsrs)

Agora vou pensar um trilhão de vezes antes de perguntar alguma coisa e se 
não tiver tempo de uma pesquisa mais profunda na net, estou pensando que 
será mais fácil me 'lascar' do que perguntar a vocês, se bem que acho que a 
maioria aqui não tem esse mal humor, pq já fiz umas perguntinhas chatas de 
iniciantes e recebi resposta.

Af

From: Rubem Nascimento da Rocha
Sent: Friday, November 21, 2008 10:30 AM
To: delphi-br
Subject: RE: [delphi-br] Thread



Ah, ia me esquecendo!

http://en.wikipedia.org/wiki/Thread_(computer_science)

Pronto, agora vc vai saber o que é uma thread!
Sds.

To: delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Fri, 21 Nov 2008 12:28:40 +
Subject: RE: [delphi-br] Thread

http://br.groups.yahoo.com/group/lista-delphi/files/Apostilas/

Lá tem uma apostila (em inglês) que eu postei falando sobre threads e como 
implementá-las em Delphi.

Sds.

To: delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Thu, 20 Nov 2008 07:50:06 -0800
Subject: [delphi-br] Thread

Olá pessoal

tenho visto falar de Thread aqui na lista e gostaria de saber o que é uma 
Thread e para que serve uma thread?

Obrigado

Rubens Antunes
__
Cansado de espaço para só 50 fotos? Conheça o Spaces, o site de 
relacionamentos com até 6,000 fotos!
http://www.amigosdomessenger.com.br
 




Re: [delphi-br] Thread

2008-11-21 Por tôpico Eduardo Silva dos Santos
Janise, a idéia principal é sim, buscar profundamente antes de perguntar na
lista... tem gente que nem pesquisa e recorre primeiro a lista.. sendo que
se tivesse usado o querido google teria sua resposta na hora..

a ideia é essa mesmo, pesquisar, estudar se esforçar.. se de tudo não tiver
sucesso recore aos colegas..

o problema é que uns e outros querem tudo de mão beijada  (não estou fazendo
insinuações a ninguém!!!)

2008/11/21 Janise Dantas [EMAIL PROTECTED]

   Vocês são bons, mas quando quando querem ser chatos, vocês são ótimos!!!

 Se dão ao trabalho de responder nada, não seria melhor ficar em silêncio?
 (assim como não fiz agora?!rsrsrsrs)

 Agora vou pensar um trilhão de vezes antes de perguntar alguma coisa e se
 não tiver tempo de uma pesquisa mais profunda na net, estou pensando que
 será mais fácil me 'lascar' do que perguntar a vocês, se bem que acho que a

 maioria aqui não tem esse mal humor, pq já fiz umas perguntinhas chatas de
 iniciantes e recebi resposta.

 Af

 From: Rubem Nascimento da Rocha
 Sent: Friday, November 21, 2008 10:30 AM
 To: delphi-br
 Subject: RE: [delphi-br] Thread

 Ah, ia me esquecendo!

 http://en.wikipedia.org/wiki/Thread_(computer_science)

 Pronto, agora vc vai saber o que é uma thread!
 Sds.

 To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 From: [EMAIL PROTECTED] djpardalrocha%40hotmail.com
 Date: Fri, 21 Nov 2008 12:28:40 +
 Subject: RE: [delphi-br] Thread

 http://br.groups.yahoo.com/group/lista-delphi/files/Apostilas/

 Lá tem uma apostila (em inglês) que eu postei falando sobre threads e como
 implementá-las em Delphi.

 Sds.

 To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 From: [EMAIL PROTECTED] rubensantunes%40yahoo.com.br
 Date: Thu, 20 Nov 2008 07:50:06 -0800
 Subject: [delphi-br] Thread

 Olá pessoal

 tenho visto falar de Thread aqui na lista e gostaria de saber o que é uma
 Thread e para que serve uma thread?

 Obrigado

 Rubens Antunes
 __
 Cansado de espaço para só 50 fotos? Conheça o Spaces, o site de
 relacionamentos com até 6,000 fotos!
 http://www.amigosdomessenger.com.br


  _




-- 
...
Eduardo Silva dos Santos
DRD SISTEMAS
(27) 3218-4201
(27) 8842-9489
MSN: [EMAIL PROTECTED]
Site: http://www.drdsistemas.com.br/
...


[As partes desta mensagem que não continham texto foram removidas]



Res: [delphi-br] Thread

2008-11-21 Por tôpico Luciano Calenzani Simões
Além disso eu e o Rubem respondemos o post citando material para estudo, 
inclusive em português.

 Luciano Calenzani Simões







De: Eduardo Silva dos Santos [EMAIL PROTECTED]
Para: delphi-br@yahoogrupos.com.br
Enviadas: Sexta-feira, 21 de Novembro de 2008 15:47:44
Assunto: Re: [delphi-br] Thread


Janise, a idéia principal é sim, buscar profundamente antes de perguntar na
lista... tem gente que nem pesquisa e recorre primeiro a lista.. sendo que
se tivesse usado o querido google teria sua resposta na hora..

a ideia é essa mesmo, pesquisar, estudar se esforçar.. se de tudo não tiver
sucesso recore aos colegas..

o problema é que uns e outros querem tudo de mão beijada  (não estou fazendo
insinuações a ninguém!!!)


  Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread

2008-11-21 Por tôpico Janise Dantas
ahan, sei...

Apesar de realmente eu ter pesquisado na net antes de perguntar aqui, muitas 
vezes encontro um vocabulário meio difícil de entender, por que quando se 
fala do que se conhece já se pressupõe que quem vai ler já entenda do 
assunto, o que na verdade pra iniciante é uma dificuldade.

Por isso sou cadastrada em alguns sites, foruns, grupos, tudo pra me 
inteirar do assunto.

Bem...

Obrigada aos que beijaram minha mão

Abraços

Janise Dantas


From: Luciano Calenzani Simões
Sent: Friday, November 21, 2008 5:01 PM
To: delphi-br@yahoogrupos.com.br
Subject: Res: [delphi-br] Thread


Além disso eu e o Rubem respondemos o post citando material para estudo, 
inclusive em português.

Luciano Calenzani Simões


De: Eduardo Silva dos Santos [EMAIL PROTECTED]
Para: delphi-br@yahoogrupos.com.br
Enviadas: Sexta-feira, 21 de Novembro de 2008 15:47:44
Assunto: Re: [delphi-br] Thread

Janise, a idéia principal é sim, buscar profundamente antes de perguntar na
lista... tem gente que nem pesquisa e recorre primeiro a lista.. sendo que
se tivesse usado o querido google teria sua resposta na hora..

a ideia é essa mesmo, pesquisar, estudar se esforçar.. se de tudo não tiver
sucesso recore aos colegas..

o problema é que uns e outros querem tudo de mão beijada (não estou fazendo
insinuações a ninguém!!!)

Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]


 




Re: [delphi-br] Thread

2008-11-21 Por tôpico Paulo Coutinho
A lista é quase um show do milhão, primeiro você tenta com seu esforço, caso
não consiga, ai sim você recorre aos universitários.

Coisas básicas o Google te responde e tem milhares de respostas muito mais
completas usando o Google, com exemplos e tudo.

Acho que não é usando de preguiça para pesquisar na net e chegar aqui
perguntando e esculachando todo mundo que se resolve as coisas, pesquise
antes, corra atrás, porque se você não for capaz de tentar e se esforçar nas
mínimas coisas, não conseguirá entender o CONCEITO DE THREAD NUNCA.

Agora, respondendo a sua pergunta com minhas palavras, uma THREAD é um
processo que embora ligado à sua aplicação, ela roda em um processo a parte
não fazendo uso do mesmo processo da sua aplicação, deixando a aplicação
livre enquanto um outro processo está fazendo outras operações.

Alguns dizem que THREAD rodam processos simultâneos no seu processador, por
exemplo: 2 cálculos sendo executados ao mesmo tempo no processador, mas isso
é impossível. A menos claro que você tenha multi-processadores, ai você pode
delegar processos para cada um deles e assim executar processos simultâneos.

Um exemplo de thread: Você tem uma aplicação que varre o html de um site em
busca de links e para cada link você precisa acessar e varrer o html dele em
busca de mais links e por ai vai (conceito de html spider). E conforme os
links são varridos, você precisa ir  preenchendo uma treeview. Agora imagina
o quanto sua aplicação ficará travada enquanto esse processo é executado.

Agora se para cada parser de html você fizer dentro de uma thread, sua
aplicação ficará livre e você verá em tempo real sua treeview sendo
alimentada pelas threads, enquanto isso você pode executar as outras
operações dentro da sua aplicação.

Acho que deu pra entender.

Abs.

2008/11/21 Luciano Calenzani Simões [EMAIL PROTECTED]

   Além disso eu e o Rubem respondemos o post citando material para estudo,
 inclusive em português.

 Luciano Calenzani Simões

 
 De: Eduardo Silva dos Santos [EMAIL PROTECTED]eduardo.drd%40gmail.com
 
 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Enviadas: Sexta-feira, 21 de Novembro de 2008 15:47:44
 Assunto: Re: [delphi-br] Thread


 Janise, a idéia principal é sim, buscar profundamente antes de perguntar na
 lista... tem gente que nem pesquisa e recorre primeiro a lista.. sendo que
 se tivesse usado o querido google teria sua resposta na hora..

 a ideia é essa mesmo, pesquisar, estudar se esforçar.. se de tudo não tiver
 sucesso recore aos colegas..

 o problema é que uns e outros querem tudo de mão beijada (não estou fazendo
 insinuações a ninguém!!!)

 Veja quais são os assuntos do momento no Yahoo! +Buscados
 http://br.maisbuscados.yahoo.com

 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
Atenciosamente,
Paulo Coutinho.
Site: www.prsolucoes.com
Msn:  [EMAIL PROTECTED]
Skype: paulo.prsolucoes


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread

2008-11-21 Por tôpico Paulo Coutinho
Entendo.

Mas uma pesquisa simples como delphi thread retorna tudo sobre o assunto.

http://www.google.com.br/search?q=delphi+threadie=utf-8oe=utf-8aq=trls=org.mozilla:pt-BR:officialclient=firefox-a

O primeiro resultado ja é um guia definitivo com 2 links para o imasters,
com exemplos e tudo.

Na minha opinião sua resposta é inválida, mas enfim, tópico resolvido.

2008/11/21 Janise Dantas [EMAIL PROTECTED]

   ahan, sei...

 Apesar de realmente eu ter pesquisado na net antes de perguntar aqui,
 muitas
 vezes encontro um vocabulário meio difícil de entender, por que quando se
 fala do que se conhece já se pressupõe que quem vai ler já entenda do
 assunto, o que na verdade pra iniciante é uma dificuldade.

 Por isso sou cadastrada em alguns sites, foruns, grupos, tudo pra me
 inteirar do assunto.

 Bem...

 Obrigada aos que beijaram minha mão

 Abraços

 Janise Dantas

 From: Luciano Calenzani Simões
 Sent: Friday, November 21, 2008 5:01 PM
 To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Subject: Res: [delphi-br] Thread


 Além disso eu e o Rubem respondemos o post citando material para estudo,
 inclusive em português.

 Luciano Calenzani Simões

 
 De: Eduardo Silva dos Santos [EMAIL PROTECTED]eduardo.drd%40gmail.com
 
 Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
 Enviadas: Sexta-feira, 21 de Novembro de 2008 15:47:44
 Assunto: Re: [delphi-br] Thread

 Janise, a idéia principal é sim, buscar profundamente antes de perguntar na
 lista... tem gente que nem pesquisa e recorre primeiro a lista.. sendo que
 se tivesse usado o querido google teria sua resposta na hora..

 a ideia é essa mesmo, pesquisar, estudar se esforçar.. se de tudo não tiver
 sucesso recore aos colegas..

 o problema é que uns e outros querem tudo de mão beijada (não estou fazendo
 insinuações a ninguém!!!)

 Veja quais são os assuntos do momento no Yahoo! +Buscados
 http://br.maisbuscados.yahoo.com

 [As partes desta mensagem que não continham texto foram removidas]

  




-- 
Atenciosamente,
Paulo Coutinho.
Site: www.prsolucoes.com
Msn:  [EMAIL PROTECTED]
Skype: paulo.prsolucoes


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread

2008-11-21 Por tôpico Ricardo César Cardoso
Que nada Janise... É só dar uma olhada no material que o Rubem mandou na 
primeira resposta dele que vai ver que a apostila é o bicho. Material de 
primeira mesmo; porém se voce estiver implementando em Delphi.

Agora se você quer conhecer a teoria que envolve threads, o segundo link vai 
mais na linha, pois não se prende a nenhuma IDE/Linguagem. 

Apesar do tom meio seco, a resposta do Rubem foi muito eficiente. Pra mim é 
mais um upgrade. 

Pra centralizar melhor, vou fazer o upload dela aqui pra Delphi-BR, pois nem 
sempre o pessoal quer ficar se associando a muitas listas.

[]'s
Ricardo.

+--+

| Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante! |

+--+

--- Em sex, 21/11/08, Janise Dantas [EMAIL PROTECTED] escreveu:
De: Janise Dantas [EMAIL PROTECTED]
Assunto: Re: [delphi-br] Thread
Para: delphi-br@yahoogrupos.com.br
Data: Sexta-feira, 21 de Novembro de 2008, 16:15











Vocês são bons, mas quando quando querem ser chatos, vocês são 
ótimos!!!



Se dão ao trabalho de responder nada, não seria melhor ficar em silêncio? 

(assim como não fiz agora?!rsrsrsrs)



Agora vou pensar um trilhão de vezes antes de perguntar alguma coisa e se 

não tiver tempo de uma pesquisa mais profunda na net, estou pensando que 

será mais fácil me 'lascar' do que perguntar a vocês, se bem que acho que a 

maioria aqui não tem esse mal humor, pq já fiz umas perguntinhas chatas de 

iniciantes e recebi resposta.



Af
 
 

















  Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] Thread

2008-11-20 Por tôpico Rubens Antunes

Olá pessoal 
 
tenho visto falar de Thread aqui na lista e gostaria de saber o que é uma 
Thread e para que serve uma thread?
 
Obrigado
 
Rubens Antunes


  Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread

2008-08-05 Por tôpico Alexandre Rodrigues
  Para checar as atualizações. Como quero checar em de tempo em tempo,
  coloquei um sleep, dentro da thread, mais alguma ou o id.FTP.Get, ou o
  sleep, esta bloqueado
 
  O restante da apliacação, pois o restante para de responder, e fica
  aguardando. Alguem pode me ajudar?

Desculpe amigo, mas não entendi, poderia redigir novamente com mais clareza?

Rodrigo Junqueira escreveu:
 
 
 Ola lista.
 
 Pessoal preciso atualizar meu sistema automaticamente. Entao criei uma
 thread (PAI), dentro dessa thread pai, eu crio a thread filho, e na thread
 filho, eu uso o IDftp,
 
 Para checar as atualizações. Como quero checar em de tempo em tempo,
 coloquei um sleep, dentro da thread, mais alguma ou o id.FTP.Get, ou o
 sleep, esta bloqueado
 
 O restante da apliacação, pois o restante para de responder, e fica
 aguardando. Alguem pode me ajudar?
 
 Rodrigo
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
__
Faça ligações para outros computadores com o novo Yahoo! Messenger 
http://br.beta.messenger.yahoo.com/ 


Re: Res: [delphi-br] Thread

2008-08-05 Por tôpico Alexandre Rodrigues
  Primeiro ponto: a instrução Sleep pára TODO o processamento da
  aplicação. Deve ser este o seu problema.

Negativo, utilizo sleep dentro de threads e isso não procede.

  Segundo ponto: o uso de TTimers se aplica de maneira mais efetiva no seu
  caso.

Ai é uma questão de como você gosta de trabalhar, eu recomendo o uso de 
threads, sem a menor duvida. Se está travando deve ser algum outro 
problema. Possivelmente o código que trava deve estar dentro de uma 
função Synchronize. Por favor poste o trecho de código aonde está 
ocorrendo o problema.

Willian Jhonnes Lara dos Santos escreveu:
 
 
 Olá Rodrigo...
 
 Primeiro ponto: a instrução Sleep pára TODO o processamento da 
 aplicação. Deve ser este o seu problema.
 
 Segundo ponto: o uso de TTimers se aplica de maneira mais efetiva no seu 
 caso.
 
 Instancie um TTimer em suas threads chamando os evendos que vc deseja e 
 estes problemas desaparecerão...
 
 []'s
 
 ---
 Att.:
 Willian Jhonnes L. dos Santos
 Analista/Desenvolvedor Object/Free Pascal
 [EMAIL PROTECTED] mailto:willianjhonnes%40yahoo.com.br
 ---
 Seja livre. Use Linux.
 Grupo de Usuários GNU/Linux de São José dos Pinhais
 Linux user number 449753
 ---
 Powered by Slackware Linux 12.0
 Kernel 2.6.21.5-custom
 ---
 
 - Mensagem original 
 De: Rodrigo Junqueira [EMAIL PROTECTED] 
 mailto:rodrigo%40foxdata.com.br
 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
 Enviadas: Segunda-feira, 4 de Agosto de 2008 13:12:30
 Assunto: [delphi-br] Thread
 
 Ola lista.
 
 Pessoal preciso atualizar meu sistema automaticamente. Entao criei uma
 thread (PAI), dentro dessa thread pai, eu crio a thread filho, e na thread
 filho, eu uso o IDftp,
 
 Para checar as atualizações. Como quero checar em de tempo em tempo,
 coloquei um sleep, dentro da thread, mais alguma ou o id.FTP.Get, ou o
 sleep, esta bloqueado
 
 O restante da apliacação, pois o restante para de responder, e fica
 aguardando. Alguem pode me ajudar?
 
 Rodrigo
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua 
 cara @ymail.com ou @rocketmail.com.
 http://br.new.mail.yahoo.com/addresses 
 http://br.new.mail.yahoo.com/addresses
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
__
Fa�a liga��es para outros computadores com o novo Yahoo! Messenger 
http://br.beta.messenger.yahoo.com/ 


[delphi-br] Thread

2008-08-04 Por tôpico Rodrigo Junqueira
Ola lista.

 

Pessoal preciso atualizar meu sistema automaticamente. Entao criei uma
thread (PAI), dentro dessa thread pai, eu crio a thread filho, e na thread
filho, eu uso o IDftp,

Para checar as atualizações. Como quero checar em de tempo em tempo,
coloquei um sleep, dentro da thread, mais alguma  ou o id.FTP.Get, ou o
sleep, esta bloqueado

O restante da apliacação, pois o restante para de responder, e fica
aguardando. Alguem pode me ajudar?

 

 

Rodrigo



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread

2008-08-04 Por tôpico Marlon David de Souza
Use um TTimer em vez de thread

Sem mais,

Marlon David de Souza
Desenvolvimento
Sysmo Informática Ltda



Rodrigo Junqueira escreveu:
 Ola lista.

  

 Pessoal preciso atualizar meu sistema automaticamente. Entao criei uma
 thread (PAI), dentro dessa thread pai, eu crio a thread filho, e na thread
 filho, eu uso o IDftp,

 Para checar as atualizações. Como quero checar em de tempo em tempo,
 coloquei um sleep, dentro da thread, mais alguma  ou o id.FTP.Get, ou o
 sleep, esta bloqueado

 O restante da apliacação, pois o restante para de responder, e fica
 aguardando. Alguem pode me ajudar?
   


Res: [delphi-br] Thread

2008-08-04 Por tôpico Willian Jhonnes Lara dos Santos
Olá Rodrigo...

Primeiro ponto: a instrução Sleep pára TODO o processamento da aplicação. Deve 
ser este o seu problema.

Segundo ponto: o uso de TTimers se aplica de maneira mais efetiva no seu caso.

Instancie um TTimer em suas threads chamando os evendos que vc deseja e estes 
problemas desaparecerão...

[]'s

 ---
Att.:
Willian Jhonnes L. dos Santos
Analista/Desenvolvedor Object/Free Pascal
[EMAIL PROTECTED]
---
Seja livre. Use Linux.
Grupo de Usuários GNU/Linux de São José dos Pinhais
Linux user number 449753
---
Powered by Slackware Linux 12.0
Kernel 2.6.21.5-custom
---



- Mensagem original 
De: Rodrigo Junqueira [EMAIL PROTECTED]
Para: delphi-br@yahoogrupos.com.br
Enviadas: Segunda-feira, 4 de Agosto de 2008 13:12:30
Assunto: [delphi-br] Thread


Ola lista.

Pessoal preciso atualizar meu sistema automaticamente. Entao criei uma
thread (PAI), dentro dessa thread pai, eu crio a thread filho, e na thread
filho, eu uso o IDftp,

Para checar as atualizações. Como quero checar em de tempo em tempo,
coloquei um sleep, dentro da thread, mais alguma  ou o id.FTP.Get, ou o
sleep, esta bloqueado

O restante da apliacação, pois o restante para de responder, e fica
aguardando. Alguem pode me ajudar?

Rodrigo

[As partes desta mensagem que não continham texto foram removidas]




  Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua 
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] Thread

2008-04-02 Por tôpico Joel Alexandre
Pessoal boa noite.

Estou gatinhando no Delphi ainda e gostaria de saber dos senhores se 
existe algum exemplo de utilização de threads para exeção de Querys. 
Qualquer ajuda será bem vinda.
Valeu

[]Os Joel


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread

2008-04-02 Por tôpico Consultores Software
Imaginando que vc quer executar uma query de tempos em  tempos dentro da
Thread, vc pode fazer o seguinte :

1. No seu projeto no delphi, crie uma nova classe :  File -New - Other -
New - Thread Object
Você terá um esqueleto de uma classe que herda de TThread, e será portanto,
a sua Thread.

2. No método Execute , implemente algo assim :

 while not Terminated do begin
  // Escreva aqui o código p/ executar a sua query
  Sleep(tempo_mili_segundos); // espera um tempo até a próxima execução
 end;

Ao usar a classe no projeto, vc pode ter o controle da execução através dos
métodos Resume, Suspend e Terminate.


Em 01/04/08, Joel Alexandre [EMAIL PROTECTED] escreveu:

   Pessoal boa noite.

 Estou gatinhando no Delphi ainda e gostaria de saber dos senhores se
 existe algum exemplo de utilização de threads para exeção de Querys.
 Qualquer ajuda será bem vinda.
 Valeu

 []Os Joel

 [As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread

2008-04-02 Por tôpico Ricardo César Cardoso
Recentemente (creio que há no máximo umas 3 edições atrás) saíram 2 artigos 
tratando exatamente sobre isso na revista ActiveDelphi. Dá uma olhada no site 
deles que vc pode até achar o link para os arquivos de exemplo das matérias.

Atte,
Ricardo.

Joel Alexandre [EMAIL PROTECTED] escreveu: 
Pessoal boa noite.
 
 Estou gatinhando no Delphi ainda e gostaria de saber dos senhores se 
 existe algum exemplo de utilização de threads para exeção de Querys. 
 Qualquer ajuda será bem vinda.
 Valeu
 
 []Os Joel
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 _



   
-
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! 

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread

2008-04-02 Por tôpico Joel Alexandre
Consultores,

Obrigado pela dica. Deixa eu só entender. É dentro deste metodo 
execute que eu coloco aqueles codigos que praticamente travam o 
programa? Utilizando o codigo pra executar a query como o Sr disse, eu 
precisaria executar o metodo Syncronize?

[]Os Joel


Consultores Software escreveu:
 Imaginando que vc quer executar uma query de tempos em  tempos dentro da
 Thread, vc pode fazer o seguinte :

 1. No seu projeto no delphi, crie uma nova classe :  File -New - Other -
 New - Thread Object
 Você terá um esqueleto de uma classe que herda de TThread, e será portanto,
 a sua Thread.

 2. No método Execute , implemente algo assim :

  while not Terminated do begin
   // Escreva aqui o código p/ executar a sua query
   Sleep(tempo_mili_segundos); // espera um tempo até a próxima execução
  end;

 Ao usar a classe no projeto, vc pode ter o controle da execução através dos
 métodos Resume, Suspend e Terminate.


 Em 01/04/08, Joel Alexandre [EMAIL PROTECTED] escreveu:
   
   Pessoal boa noite.

 Estou gatinhando no Delphi ainda e gostaria de saber dos senhores se
 existe algum exemplo de utilização de threads para exeção de Querys.
 Qualquer ajuda será bem vinda.
 Valeu

 []Os Joel

 [As partes desta mensagem que não continham texto foram removidas]



 


 [As partes desta mensagem que não continham texto foram removidas]


 

   



[As partes desta mensagem que não continham texto foram removidas]




-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [delphi-br] Thread

2008-04-02 Por tôpico Consultores Software
Sobre o método Execute,  é lá que você deve implementar  aquilo que você
quer que a Thread faça.
A vantagem é que você terá maior controle externo sobre a execução dela,
pois pode colocar um botão parar na janela e usar Thread.Suspend , se ela
estiver travando.
Synchronize vc deve usar para fazer acesso a algum objeto que seja
compartilhado dentro da aplicação.
Exemplo: vc quer escrever um TLabel que está no form ( portanto externo à
Thread ) o andamento da execução.
assim,
dentro de Execute, use synchronize(EscreverNoLabel);
onde :
procedure TMyThread.EscreverNoLabel;
begin
 MyLabel.Caption :=  FloatToStr(FPorcento) + '% concluído';
end;



Em 02/04/08, Joel Alexandre [EMAIL PROTECTED] escreveu:

 Consultores,

Obrigado pela dica. Deixa eu só entender. É dentro deste metodo
 execute que eu coloco aqueles codigos que praticamente travam o
 programa? Utilizando o codigo pra executar a query como o Sr disse, eu
 precisaria executar o metodo Syncronize?

 []Os Joel


 Consultores Software escreveu:
  Imaginando que vc quer executar uma query de tempos em  tempos dentro da
  Thread, vc pode fazer o seguinte :
 
  1. No seu projeto no delphi, crie uma nova classe :  File -New - Other
 -
  New - Thread Object
  Você terá um esqueleto de uma classe que herda de TThread, e será
 portanto,
  a sua Thread.
 
  2. No método Execute , implemente algo assim :
 
   while not Terminated do begin
// Escreva aqui o código p/ executar a sua query
Sleep(tempo_mili_segundos); // espera um tempo até a próxima execução
   end;
 
  Ao usar a classe no projeto, vc pode ter o controle da execução através
 dos
  métodos Resume, Suspend e Terminate.
 
 
  Em 01/04/08, Joel Alexandre [EMAIL PROTECTED] escreveu:
 
Pessoal boa noite.
 
  Estou gatinhando no Delphi ainda e gostaria de saber dos senhores se
  existe algum exemplo de utilização de threads para exeção de Querys.
  Qualquer ajuda será bem vinda.
  Valeu
 
  []Os Joel
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
  
 
 



 [As partes desta mensagem que não continham texto foram removidas]


 

 --
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 






[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread

2008-04-02 Por tôpico Joel Alexandre
Valeu mesmo..

 Agora deu pra entender legal.


[]Os Joel

 Sobre o método Execute,  é lá que você deve implementar  aquilo que você
 quer que a Thread faça.
 A vantagem é que você terá maior controle externo sobre a execução dela,
 pois pode colocar um botão parar na janela e usar Thread.Suspend , se ela
 estiver travando.
 Synchronize vc deve usar para fazer acesso a algum objeto que seja
 compartilhado dentro da aplicação.
 Exemplo: vc quer escrever um TLabel que está no form ( portanto externo à
 Thread ) o andamento da execução.
 assim,
 dentro de Execute, use synchronize(EscreverNoLabel);
 onde :
 procedure TMyThread.EscreverNoLabel;
 begin
  MyLabel.Caption :=  FloatToStr(FPorcento) + '% concluído';
 end;
   





-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




[delphi-br] Thread para frames

2008-02-13 Por tôpico Leslyn Fernandes
Olá a todos,

Eu tenho uma tela que possui quatro frames herdados de um frame genérico. Eu
gostaria de fazer uma forma de faze-los serem carregados paralelamente... Aí
eu pensei em threads... mas não possuo muita experiência com threads e acho
que me confundi... Alguém pode me dar alguma dica de como fazer?


-- 
TFA,
Leslyn Fernandes
55-11-9159-3837
Computer Engineer
Integra Solutions

Imagination is more important than knowledge.
 - Albert Einstein


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread.

2008-02-07 Por tôpico José Mário Silva Guedes
Você pode gerar várias instâncias da mesma classe que você construiu...


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread.

2008-02-07 Por tôpico Joao Morais
Domingos Neto wrote:
 Gostaria de saber se com uma thread, consigo gerar mais threads, herdando da 
 primeira. 

Você poderia explicar melhor o que você pretende fazer?

--
Joao Morais



[delphi-br] Thread.

2008-02-07 Por tôpico Domingos Neto

Gostaria de saber se com uma thread, consigo gerar mais threads, herdando da 
primeira. 

Grato pela atenção, 

Domingos Neto
Programador Jr.

[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] Thread.

2008-02-07 Por tôpico Domingos Neto
Olá,

Gostaria de saber se com uma thread, consigo gerar mais threads, herdando da 
primeira. 

Grato pela atenção, 

Domingos Neto
Programador Jr.

[As partes desta mensagem que não continham texto foram removidas]



RES: RES: RES: [delphi-br] Thread - Problemas!

2007-12-20 Por tôpico Sérgio T . Uetanabaro
Vc já testou o código dentro do exe? Acho q pode ser algum problema de
notificação de handle. Se for possível, faça o teste de chamada dentro do
próprio EXE.
 
[]´s
 
 
Sérgio T. Uetanabaro

 

   _  

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de malikoski
Enviada em: quarta-feira, 19 de dezembro de 2007 16:39
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: RES: RES: [delphi-br] Thread - Problemas!



Bom.. eu ja havia feito isso, ele trava no método :

TThread.Syncronyze

nessa função na linha 1051

WaitForSingleObject-(SyncProcPtr.-Signal, INFINITE);

A princípio vamos esquecer o objeto de conexão, query, etc
Quero apenas ver se passa pelo método syncronyze do execute



for vi := 0 to 9 do begin
I := vi;
Synchronize(-Mostra);
end;
...

function Mostra
begin
showmessage(-inttostr(-I));
end;

que coisa malucaaa

Ricardo



 


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.503 / Virus Database: 269.17.5/1190 - Release Date: 19/12/2007
19:37



No virus found in this outgoing message.
Checked by AVG Free Edition. 
Version: 7.5.503 / Virus Database: 269.17.5/1190 - Release Date: 19/12/2007
19:37
 


[As partes desta mensagem que não continham texto foram removidas]



RES: [delphi-br] Thread - Problemas!

2007-12-19 Por tôpico Sérgio T . Uetanabaro
Ola Ricardo!
 
Revendo seu código acredito que vc esteja em um deadlock. Vc chama a
thread e depois entra num waitfor. Depois na thread vc tentar dar um sync
com a maisthread que está travada esperando a sua thread terminar. Acredito
que ai esteja seu problema. Outra coisa, vc definiu um field public Priority
mas a thread ja tem uma propriedade pra definir isso. Só uma pergunta: Como
vc pretende fazer a carga das informações dos datasets da thread para os
datasets do formulário?

 
 
[]´s
 
 
Sérgio T. Uetanabaro

 

   _  

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de malikoski
Enviada em: terça-feira, 18 de dezembro de 2007 16:33
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Thread - Problemas!



Pessoal, estou desenvolvendo um sistema que possui a seguinte situação:

Opções do menu carregam uma DLL que se encarrega de criar um
formulário dinâmicamente. Logo após tenho um objeto em uma outra unit
que possui funções para gerar os objetos visuais nesse
formulário.(tudo dinâmicamente)
Nesse formulário é criado um dbgrid onde é aberto uma tabela(de acordo
com a opção do menu principal) onde assim os dados são exibidos.
Algumas telas ficam lentas até carregar todos os dados da tabela, pois
algumas possuem milhares de registros, assim achamos melhor usar uma
thread para carregar essa tabela, assim o usuário abrir outro processo
no programa. 
Eu estou conseguindo abrir certinho na thread, mas não estou
conseguindo atulizar alguns dados da tela como componentes que
mostram que os dados estão carrengando, e também não consigo verificar
quando a thread termina, pois quando ela passa la no evento
Syncronize(minhafun-caoexemplo) ele simplesmente para de executar a
thread e não passa pelo método (onTerminate)-. Exemplo abaixo:

função na DLL:

procedure ShowForm(NewApplica-tion, NewScreen : Pointer; FormName :
String; Params : TStringList)-;

...

oForm := TForm.Create(-Application.-MainForm)-;
oForm.Name := FormName;

oMontaTela := Tmontar_tela.-Create(oForm)-;
oMontaTela._-Montar_GRID(-oDM.oSQLConnecti-on,
Params.ValueFromInd-ex[viIdxCodTab]-,
Params.ValueFromInd-ex[viIdxMat]-,oForm);

...
end;

na unit que existe a classe Tmontar_tela

TConsultaThread = class(TThread)
private
SessaoCritica: TCriticalSection;

protected
procedure Execute; override;
procedure Atualiza;
public
oDataSource : TDataSource;
Priority : TThreadPriority;
oQuery : TSQLQuery;
oCDS : TClientDataSet;
oMontatela : Tmontar_tela;
I : integer;
end;

...
...
...

Tmontar_tela = class(TObject)
private
oThread : TConsultaThread;
...
public
function RunThread(Query : TSQLQuery; CDS : TClientDataSet; DS
: TDataSource; MontaTela : Tmontar_Tela) : TConsultaThread;
procedure ThreadTerminate(-Sender: TObject);

procedure Tmontar_tela.-_ShowForm(-Sender: TObject); //procedure
atribuída manualmente (onShow)
begin
oThread := RunThread(SQLQ_-DB2, CDS_DB2, DS_DB2, Self);

// if not oThread.Terminated then begin
// oThread.WaitFor;
// end;

end;

...

function Tmontar_tela.-RunThread(-Query : TSQLQuery; CDS :
TClientDataSet; DS : TDataSource; 
MontaTela : Tmontar_Tela) : TConsultaThread;
var
oConsThread : TConsultaThread;
begin
oConsThread := TConsultaThread.-Create(True)-;
oConsThread.-FreeOnTerminate := True;
oConsThread.-Priority := tpHigher;
oConsThread.-OnTerminate := ThreadTerminate;
oConsThread.-oQuery := Query;
oConsThread.-oCDS := CDS;
oConsThread.-oDataSource := DS;
oConsThread.-oMontatela := MontaTela;
oConsThread.-Resume;

Result := oConsThread;
end;

procedure TConsultaThread.-Execute;
var
oConn : TSQLConnection;
begin
oConn := nil;
oConn := TSQLConnection.-Create(nil)-;

with oConn do begin
... parâmetros de conexão
end;

oConn.Connected := True;
oQuery.SQLConnectio-n := oConn;

Synchronize(-Atualiza)-;
oCDS.Close;
oCDS.Open;
Sleep(20);

end;

procedure TConsultaThread.-Atualiza;
begin
oMontatela._-PainelStatus.-Caption := 'carregando.-..';
end;

procedure Tmontar_tela.-ThreadTerminate(-Sender: TObject);
begin
_PainelStatus.-Caption := 'Pronto!...'-;
Sleep(20);
_PainelStatus.-Visible := False;
Application.-ProcessMessages;
Sender := nil;
end;

Desculpem a quantidade código...

obrigado

Ricardo



 


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.503 / Virus Database: 269.17.4/1188 - Release Date: 17/12/2007
14:13



No virus found in this outgoing message.
Checked by AVG Free Edition. 
Version: 7.5.503 / Virus Database: 269.17.4/1188 - Release Date: 17/12/2007
14:13
 


[As partes desta mensagem que não continham texto foram removidas]



Re: RES: [delphi-br] Thread - Problemas!

2007-12-19 Por tôpico malikoski
Oi Sérgio,,

   Eu tinha colocado o waitfor apenas para teste mas deixei ele
comentado. Quando executo o waitfor o sistema espera terminar a thread
e assim passa pelo syncronize e onterminate (que eu defini. pelo menos
foi isso que notei nos meus testes). O fied da prioridade eu também
usei, mas não estou usando mais e esqueci de apagar. Pra carregar os
dados eu apenas liguei um DBGrid ao datasource ligado ao dataset que
está sendo aberto na thread. 
   Fiz outros testes sem acesso a dados, como um laço por exemplo na
thread, apenas para testar a funcionalidade, e não funciona de jeito
nenhum. Será que preciso definir algo na DLL?

   Obrigado

Ricardo

--- Em delphi-br@yahoogrupos.com.br, Sérgio T. Uetanabaro [EMAIL PROTECTED]
escreveu

 Ola Ricardo!
  
 Revendo seu código acredito que vc esteja em um deadlock. Vc chama a
 thread e depois entra num waitfor. Depois na thread vc tentar dar um
sync
 com a maisthread que está travada esperando a sua thread terminar.
Acredito
 que ai esteja seu problema. Outra coisa, vc definiu um field public
Priority
 mas a thread ja tem uma propriedade pra definir isso. Só uma
pergunta: Como
 vc pretende fazer a carga das informações dos datasets da thread para os
 datasets do formulário?
 
  
  
 []´s
  
  
 Sérgio T. Uetanabaro
 
  
 
_  
 
 De: delphi-br@yahoogrupos.com.br
[mailto:[EMAIL PROTECTED] Em
 nome de malikoski
 Enviada em: terça-feira, 18 de dezembro de 2007 16:33
 Para: delphi-br@yahoogrupos.com.br
 Assunto: [delphi-br] Thread - Problemas!
 
 
 
 Pessoal, estou desenvolvendo um sistema que possui a seguinte situação:
 
 Opções do menu carregam uma DLL que se encarrega de criar um
 formulário dinâmicamente. Logo após tenho um objeto em uma outra unit
 que possui funções para gerar os objetos visuais nesse
 formulário.(tudo dinâmicamente)
 Nesse formulário é criado um dbgrid onde é aberto uma tabela(de acordo
 com a opção do menu principal) onde assim os dados são exibidos.
 Algumas telas ficam lentas até carregar todos os dados da tabela, pois
 algumas possuem milhares de registros, assim achamos melhor usar uma
 thread para carregar essa tabela, assim o usuário abrir outro processo
 no programa. 
 Eu estou conseguindo abrir certinho na thread, mas não estou
 conseguindo atulizar alguns dados da tela como componentes que
 mostram que os dados estão carrengando, e também não consigo verificar
 quando a thread termina, pois quando ela passa la no evento
 Syncronize(minhafun-caoexemplo) ele simplesmente para de executar a
 thread e não passa pelo método (onTerminate)-. Exemplo abaixo:
 
 função na DLL:
 
 procedure ShowForm(NewApplica-tion, NewScreen : Pointer; FormName :
 String; Params : TStringList)-;
 
 ...
 
 oForm := TForm.Create(-Application.-MainForm)-;
 oForm.Name := FormName;
 
 oMontaTela := Tmontar_tela.-Create(oForm)-;
 oMontaTela._-Montar_GRID(-oDM.oSQLConnecti-on,
 Params.ValueFromInd-ex[viIdxCodTab]-,
 Params.ValueFromInd-ex[viIdxMat]-,oForm);
 
 ...
 end;
 
 na unit que existe a classe Tmontar_tela
 
 TConsultaThread = class(TThread)
 private
 SessaoCritica: TCriticalSection;
 
 protected
 procedure Execute; override;
 procedure Atualiza;
 public
 oDataSource : TDataSource;
 Priority : TThreadPriority;
 oQuery : TSQLQuery;
 oCDS : TClientDataSet;
 oMontatela : Tmontar_tela;
 I : integer;
 end;
 
 ...
 ...
 ...
 
 Tmontar_tela = class(TObject)
 private
 oThread : TConsultaThread;
 ...
 public
 function RunThread(Query : TSQLQuery; CDS : TClientDataSet; DS
 : TDataSource; MontaTela : Tmontar_Tela) : TConsultaThread;
 procedure ThreadTerminate(-Sender: TObject);
 
 procedure Tmontar_tela.-_ShowForm(-Sender: TObject); //procedure
 atribuída manualmente (onShow)
 begin
 oThread := RunThread(SQLQ_-DB2, CDS_DB2, DS_DB2, Self);
 
 // if not oThread.Terminated then begin
 // oThread.WaitFor;
 // end;
 
 end;
 
 ...
 
 function Tmontar_tela.-RunThread(-Query : TSQLQuery; CDS :
 TClientDataSet; DS : TDataSource; 
 MontaTela : Tmontar_Tela) : TConsultaThread;
 var
 oConsThread : TConsultaThread;
 begin
 oConsThread := TConsultaThread.-Create(True)-;
 oConsThread.-FreeOnTerminate := True;
 oConsThread.-Priority := tpHigher;
 oConsThread.-OnTerminate := ThreadTerminate;
 oConsThread.-oQuery := Query;
 oConsThread.-oCDS := CDS;
 oConsThread.-oDataSource := DS;
 oConsThread.-oMontatela := MontaTela;
 oConsThread.-Resume;
 
 Result := oConsThread;
 end;
 
 procedure TConsultaThread.-Execute;
 var
 oConn : TSQLConnection;
 begin
 oConn := nil;
 oConn := TSQLConnection.-Create(nil)-;
 
 with oConn do begin
 ... parâmetros de conexão
 end;
 
 oConn.Connected := True;
 oQuery.SQLConnectio-n := oConn;
 
 Synchronize(-Atualiza)-;
 oCDS.Close;
 oCDS.Open;
 Sleep(20);
 
 end;
 
 procedure TConsultaThread.-Atualiza;
 begin
 oMontatela._-PainelStatus.-Caption := 'carregando.-..';
 end;
 
 procedure Tmontar_tela.-ThreadTerminate(-Sender: TObject);
 begin
 _PainelStatus.-Caption := 'Pronto!...'-;
 Sleep(20);
 _PainelStatus.-Visible := False;
 Application

RES: RES: [delphi-br] Thread - Problemas!

2007-12-19 Por tôpico Sérgio T . Uetanabaro
Gde Ricardo,
 
Eu nao tinha visto os comentarios... heheh... sorry. Mas voltando a analisar
o código, tenta entrar no metodo syncronize e vai entrado codigo adentro ate
achar onde ele para para que possamos ter uma pista sobre o problema. Outro
problema q estou vendo eh q vc vai usar uma nova conexao na thread, certo?
Vc vai ligar TSQLQuery nele? Cuidado com isso pq o provider vai usa-lo pros
devidos inserts e updates.
 
 
[]´s
 

Sérgio T. Uetanabaro

 


   _  

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de malikoski
Enviada em: quarta-feira, 19 de dezembro de 2007 09:31
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: RES: [delphi-br] Thread - Problemas!



Oi Sérgio,,

Eu tinha colocado o waitfor apenas para teste mas deixei ele
comentado. Quando executo o waitfor o sistema espera terminar a thread
e assim passa pelo syncronize e onterminate (que eu defini. pelo menos
foi isso que notei nos meus testes). O fied da prioridade eu também
usei, mas não estou usando mais e esqueci de apagar. Pra carregar os
dados eu apenas liguei um DBGrid ao datasource ligado ao dataset que
está sendo aberto na thread. 
Fiz outros testes sem acesso a dados, como um laço por exemplo na
thread, apenas para testar a funcionalidade, e não funciona de jeito
nenhum. Será que preciso definir algo na DLL?

Obrigado

Ricardo

--- Em HYPERLINK
mailto:delphi-br%40yahoogrupos.com.br[EMAIL PROTECTED], Sérgio
T. Uetanabaro [EMAIL PROTECTED]
escreveu

 Ola Ricardo!
 
 Revendo seu código acredito que vc esteja em um deadlock. Vc chama a
 thread e depois entra num waitfor. Depois na thread vc tentar dar um
sync
 com a maisthread que está travada esperando a sua thread terminar.
Acredito
 que ai esteja seu problema. Outra coisa, vc definiu um field public
Priority
 mas a thread ja tem uma propriedade pra definir isso. Só uma
pergunta: Como
 vc pretende fazer a carga das informações dos datasets da thread para os
 datasets do formulário?
 
 
 
 []´s
 
 
 Sérgio T. Uetanabaro
 
 
 
 _ 
 
 De: HYPERLINK
mailto:delphi-br%40yahoogrupos.com.br[EMAIL PROTECTED]
[mailto:HYPERLINK
mailto:delphi-br%40yahoogrupos.com.br[EMAIL PROTECTED] Em
 nome de malikoski
 Enviada em: terça-feira, 18 de dezembro de 2007 16:33
 Para: HYPERLINK
mailto:delphi-br%40yahoogrupos.com.br[EMAIL PROTECTED]
 Assunto: [delphi-br] Thread - Problemas!
 
 
 
 Pessoal, estou desenvolvendo um sistema que possui a seguinte situação:
 
 Opções do menu carregam uma DLL que se encarrega de criar um
 formulário dinâmicamente. Logo após tenho um objeto em uma outra unit
 que possui funções para gerar os objetos visuais nesse
 formulário.(tudo dinâmicamente)
 Nesse formulário é criado um dbgrid onde é aberto uma tabela(de acordo
 com a opção do menu principal) onde assim os dados são exibidos.
 Algumas telas ficam lentas até carregar todos os dados da tabela, pois
 algumas possuem milhares de registros, assim achamos melhor usar uma
 thread para carregar essa tabela, assim o usuário abrir outro processo
 no programa. 
 Eu estou conseguindo abrir certinho na thread, mas não estou
 conseguindo atulizar alguns dados da tela como componentes que
 mostram que os dados estão carrengando, e também não consigo verificar
 quando a thread termina, pois quando ela passa la no evento
 Syncronize(minhafun--caoexemplo) ele simplesmente para de executar a
 thread e não passa pelo método (onTerminate)--. Exemplo abaixo:
 
 função na DLL:
 
 procedure ShowForm(NewApplica--tion, NewScreen : Pointer; FormName :
 String; Params : TStringList)--;
 
 ...
 
 oForm := TForm.Create(--Application.--MainForm)--;
 oForm.Name := FormName;
 
 oMontaTela := Tmontar_tela.--Create(oForm)--;
 oMontaTela._--Montar_GRID(--oDM.oSQLConnect-i-on,
 Params.ValueFromInd--ex[viIdxCodTab]--,
 Params.ValueFromInd--ex[viIdxMat]--,oForm);
 
 ...
 end;
 
 na unit que existe a classe Tmontar_tela
 
 TConsultaThread = class(TThread)
 private
 SessaoCritica: TCriticalSection;
 
 protected
 procedure Execute; override;
 procedure Atualiza;
 public
 oDataSource : TDataSource;
 Priority : TThreadPriority;
 oQuery : TSQLQuery;
 oCDS : TClientDataSet;
 oMontatela : Tmontar_tela;
 I : integer;
 end;
 
 ...
 ...
 ...
 
 Tmontar_tela = class(TObject)
 private
 oThread : TConsultaThread;
 ...
 public
 function RunThread(Query : TSQLQuery; CDS : TClientDataSet; DS
 : TDataSource; MontaTela : Tmontar_Tela) : TConsultaThread;
 procedure ThreadTerminate(--Sender: TObject);
 
 procedure Tmontar_tela.--_ShowForm(--Sender: TObject); //procedure
 atribuída manualmente (onShow)
 begin
 oThread := RunThread(SQLQ_--DB2, CDS_DB2, DS_DB2, Self);
 
 // if not oThread.Terminated then begin
 // oThread.WaitFor;
 // end;
 
 end;
 
 ...
 
 function Tmontar_tela.--RunThread(--Query : TSQLQuery; CDS :
 TClientDataSet; DS : TDataSource; 
 MontaTela : Tmontar_Tela) : TConsultaThread;
 var
 oConsThread : TConsultaThread;
 begin
 oConsThread := TConsultaThread.--Create(True)--;
 oConsThread.--FreeOnTerminate := True;
 oConsThread

Re: RES: RES: [delphi-br] Thread - Problemas!

2007-12-19 Por tôpico malikoski
Bom.. eu ja havia feito isso, ele trava no método :

TThread.Syncronyze

nessa função na linha 1051

WaitForSingleObject(SyncProcPtr.Signal, INFINITE);

A princípio vamos esquecer o objeto de conexão, query, etc
Quero apenas ver se passa pelo método syncronyze do execute



 for vi := 0 to 9 do begin
   I := vi;
   Synchronize(Mostra);
 end;
...

function Mostra
begin
  showmessage(inttostr(I));
end;



que coisa malucaaa


Ricardo



[delphi-br] Thread - Problemas!

2007-12-18 Por tôpico malikoski
Pessoal, estou desenvolvendo um sistema que possui a seguinte situação:

Opções do menu carregam uma DLL que se encarrega de criar um
formulário dinâmicamente. Logo após tenho um objeto em uma outra unit
que possui funções para gerar os objetos visuais nesse
formulário.(tudo dinâmicamente)
Nesse formulário é criado um dbgrid onde é aberto uma tabela(de acordo
com a opção do menu principal) onde assim os dados são exibidos.
Algumas telas ficam lentas até carregar todos os dados da tabela, pois
algumas possuem milhares de registros, assim achamos melhor usar uma
thread para carregar essa tabela, assim o usuário abrir outro processo
no programa. 
Eu estou conseguindo abrir certinho na thread, mas não estou
conseguindo  atulizar alguns dados da tela como componentes que
mostram que os dados estão carrengando, e também não consigo verificar
quando a thread termina, pois quando ela passa la no evento
Syncronize(minhafuncaoexemplo) ele simplesmente para de executar a
thread e não passa pelo método (onTerminate). Exemplo abaixo:

função na DLL:


procedure ShowForm(NewApplication, NewScreen : Pointer; FormName :
String; Params : TStringList);

...

   oForm  := TForm.Create(Application.MainForm);
   oForm.Name := FormName;

   oMontaTela := Tmontar_tela.Create(oForm);
   oMontaTela._Montar_GRID(oDM.oSQLConnection,
Params.ValueFromIndex[viIdxCodTab],
Params.ValueFromIndex[viIdxMat],oForm);

...
end;



na unit que existe a classe Tmontar_tela

TConsultaThread = class(TThread)
private
  SessaoCritica: TCriticalSection;

protected
  procedure Execute; override;
  procedure Atualiza;
public
  oDataSource : TDataSource;
  Priority: TThreadPriority;
  oQuery : TSQLQuery;
  oCDS : TClientDataSet;
  oMontatela : Tmontar_tela;
  I : integer;
end;

...
...
...

Tmontar_tela = class(TObject)
private
  oThread : TConsultaThread;
  ...
public
   function  RunThread(Query : TSQLQuery; CDS : TClientDataSet; DS
: TDataSource; MontaTela : Tmontar_Tela) : TConsultaThread;
   procedure ThreadTerminate(Sender: TObject);

procedure Tmontar_tela._ShowForm(Sender: TObject); //procedure
atribuída manualmente (onShow)
begin
   oThread := RunThread(SQLQ_DB2, CDS_DB2, DS_DB2, Self);

//   if not oThread.Terminated then begin
// oThread.WaitFor;
//   end;

end;

...

function Tmontar_tela.RunThread(Query : TSQLQuery; CDS :
TClientDataSet; DS : TDataSource;
MontaTela : Tmontar_Tela) : TConsultaThread;
var
  oConsThread : TConsultaThread;
begin
  oConsThread := TConsultaThread.Create(True);
  oConsThread.FreeOnTerminate := True;
  oConsThread.Priority:= tpHigher;
  oConsThread.OnTerminate := ThreadTerminate;
  oConsThread.oQuery  := Query;
  oConsThread.oCDS:= CDS;
  oConsThread.oDataSource := DS;
  oConsThread.oMontatela  := MontaTela;
  oConsThread.Resume;

  Result := oConsThread;
end;


procedure TConsultaThread.Execute;
var
  oConn   : TSQLConnection;
begin
  oConn :=  nil;
  oConn  := TSQLConnection.Create(nil);

  with oConn do begin
  ... parâmetros de conexão
  end;

  oConn.Connected   := True;
  oQuery.SQLConnection  := oConn;

  Synchronize(Atualiza);
  oCDS.Close;
  oCDS.Open;
  Sleep(20);

end;

procedure TConsultaThread.Atualiza;
begin
  oMontatela._PainelStatus.Caption := 'carregando...';
end;

procedure Tmontar_tela.ThreadTerminate(Sender: TObject);
begin
  _PainelStatus.Caption := 'Pronto!...';
  Sleep(20);
  _PainelStatus.Visible := False;
  Application.ProcessMessages;
  Sender := nil;
end;


Desculpem a quantidade  código...

obrigado

Ricardo



Re: [delphi-br] Thread

2007-10-19 Por tôpico Joel Alexandre
Evaldo escreveu:
 Eu estou iniciando em programação paralela,  e me deparei com o seguinte 
 problema: quando o sistema inicia, ele cria  threads que vao executar tarefas 
 demoradas. Se o programa for fechado antes das threads terminarem, ocorrer 
 erro de acsses violation. Como eu posso interromper a execução dessas threads?

 eu crio-as da seguinte forma: 
 var
 hThreadID : THandle;
 begin
 hThreadID := CreateThread (nil, 0, @Funcao, nil, 0, ThreadID); 
Evaldo, nunca trabalhei com THandle, pelo menos não me lembro. Faça 
o seguinte, experimente colocar um codigo dentro do evento OnCloseQuery 
assim:

procedure TSeuTFormPrincipal.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
   Try
 FreeAndNil(hThreadID);
 CanClose := True;
   Except
 CanClose := False;
 {Coloque codigos para informar que nao foi possivel fechar}
   End;
end;

   Tenta aí..

[]Os Joel

   



-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 


Re: [delphi-br] Thread

2007-10-19 Por tôpico escobar
hThreadID.Terminate; ???

Luiz Escobar - Analista/Desenvolvedor:
WEB - HTML/JavaScript/PHP/MySQL 
WINDOWS - Delphi/ASSEMBLY/MySQL/xBase
SERVIDORES - CNA IntraNetWare4.11, LINUX-(RedHat9/Suse10.2), Windows 2K/XP


  - Original Message - 
  From: Evaldo 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Friday, October 19, 2007 4:43 PM
  Subject: [delphi-br] Thread


  Eu estou iniciando em programação paralela, e me deparei com o seguinte 
problema: quando o sistema inicia, ele cria threads que vao executar tarefas 
demoradas. Se o programa for fechado antes das threads terminarem, ocorrer erro 
de acsses violation. Como eu posso interromper a execução dessas threads?

  eu crio-as da seguinte forma: 
  var
  hThreadID : THandle;
  begin
  hThreadID := CreateThread (nil, 0, @Funcao, nil, 0, ThreadID); 

  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
  http://br.mail.yahoo.com/

  [As partes desta mensagem que não continham texto foram removidas]



   

[As partes desta mensagem que não continham texto foram removidas]



RES: [delphi-br] Thread

2007-10-19 Por tôpico Sérgio T . Uetanabaro
Inicialmente eu te aconselho a utilizar a classe TThread do delphi para isso
ao invés de usar API do windows. Caso vc queira realmente utilizar a API, dá
uma olhada em http://msdn2.microsoft.com/en-us/library/ms682453.aspx
 
 
[]´s
 
 
Sergio Uetanabaro

  _  

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Evaldo
Enviada em: sexta-feira, 19 de outubro de 2007 15:44
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Thread



Eu estou iniciando em programação paralela, e me deparei com o seguinte
problema: quando o sistema inicia, ele cria threads que vao executar tarefas
demoradas. Se o programa for fechado antes das threads terminarem, ocorrer
erro de acsses violation. Como eu posso interromper a execução dessas
threads?

eu crio-as da seguinte forma: 
var
hThreadID : THandle;
begin
hThreadID := CreateThread (nil, 0, @Funcao, nil, 0, ThreadID); 

Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
armazenamento!
http://br.mail. http://br.mail.yahoo.com/ yahoo.com/

[As partes desta mensagem que não continham texto foram removidas]



 


[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] Thread

2007-10-19 Por tôpico Evaldo
Eu estou iniciando em programação paralela,  e me deparei com o seguinte 
problema: quando o sistema inicia, ele cria  threads que vao executar tarefas 
demoradas. Se o programa for fechado antes das threads terminarem, ocorrer erro 
de acsses violation. Como eu posso interromper a execução dessas threads?

eu crio-as da seguinte forma: 
var
hThreadID : THandle;
begin
hThreadID := CreateThread (nil, 0, @Funcao, nil, 0, ThreadID); 






  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
http://br.mail.yahoo.com/

[As partes desta mensagem que não continham texto foram removidas]



Res: RES: [delphi-br] Thread

2007-10-19 Por tôpico Evaldo
Obrigado pela força, seu conselho é de grande valia.












  


Inicialmente eu te aconselho a utilizar a classe TThread do delphi 
para isso

ao invés de usar API do windows. Caso vc queira realmente utilizar a API, dá

uma olhada em http://msdn2. microsoft. com/en-us/ library/ms682453 .aspx







!--

#ygrp-mkp{
border:1px solid #d8d8d8;font-family:Arial;margin:14px 0px;padding:0px 14px;}
#ygrp-mkp hr{
border:1px solid #d8d8d8;}
#ygrp-mkp #hd{
color:#628c2a;font-size:85%;font-weight:bold;line-height:122%;margin:10px 0px;}
#ygrp-mkp #ads{
margin-bottom:10px;}
#ygrp-mkp .ad{
padding:0 0;}
#ygrp-mkp .ad a{
color:#ff;text-decoration:none;}
--



!--

#ygrp-sponsor #ygrp-lc{
font-family:Arial;}
#ygrp-sponsor #ygrp-lc #hd{
margin:10px 0px;font-weight:bold;font-size:78%;line-height:122%;}
#ygrp-sponsor #ygrp-lc .ad{
margin-bottom:10px;padding:0 0;}
--



!--

#ygrp-mlmsg {font-size:13px;font-family:arial, helvetica, clean, sans-serif;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial, helvetica, clean, 
sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
font-family:Georgia;
}
#ygrp-text p{
margin:0 0 1em 0;}
#ygrp-tpmsgs{
font-family:Arial;
clear:both;}
#ygrp-vitnav{
padding-top:10px;font-family:Verdana;font-size:77%;margin:0;}
#ygrp-vitnav a{
padding:0 1px;}
#ygrp-actbar{
clear:both;margin:25px 0;white-space:nowrap;color:#666;text-align:right;}
#ygrp-actbar .left{
float:left;white-space:nowrap;}
.bld{font-weight:bold;}
#ygrp-grft{
font-family:Verdana;font-size:77%;padding:15px 0;}
#ygrp-ft{
font-family:verdana;font-size:77%;border-top:1px solid #666;
padding:5px 0;
}
#ygrp-mlmsg #logo{
padding-bottom:10px;}

#ygrp-vital{
background-color:#e0ecee;margin-bottom:20px;padding:2px 0 8px 8px;}
#ygrp-vital #vithd{
font-size:77%;font-family:Verdana;font-weight:bold;color:#333;text-transform:uppercase;}
#ygrp-vital ul{
padding:0;margin:2px 0;}
#ygrp-vital ul li{
list-style-type:none;clear:both;border:1px solid #e0ecee;
}
#ygrp-vital ul li .ct{
font-weight:bold;color:#ff7900;float:right;width:2em;text-align:right;padding-right:.5em;}
#ygrp-vital ul li .cat{
font-weight:bold;}
#ygrp-vital a{
text-decoration:none;}

#ygrp-vital a:hover{
text-decoration:underline;}

#ygrp-sponsor #hd{
color:#999;font-size:77%;}
#ygrp-sponsor #ov{
padding:6px 13px;background-color:#e0ecee;margin-bottom:20px;}
#ygrp-sponsor #ov ul{
padding:0 0 0 8px;margin:0;}
#ygrp-sponsor #ov li{
list-style-type:square;padding:6px 0;font-size:77%;}
#ygrp-sponsor #ov li a{
text-decoration:none;font-size:130%;}
#ygrp-sponsor #nc{
background-color:#eee;margin-bottom:20px;padding:0 8px;}
#ygrp-sponsor .ad{
padding:8px 0;}
#ygrp-sponsor .ad #hd1{
font-family:Arial;font-weight:bold;color:#628c2a;font-size:100%;line-height:122%;}
#ygrp-sponsor .ad a{
text-decoration:none;}
#ygrp-sponsor .ad a:hover{
text-decoration:underline;}
#ygrp-sponsor .ad p{
margin:0;}
o{font-size:0;}
.MsoNormal{
margin:0 0 0 0;}
#ygrp-text tt{
font-size:120%;}
blockquote{margin:0 0 0 4px;}
.replbq{margin:4;}
--








  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
http://br.mail.yahoo.com/

[As partes desta mensagem que não continham texto foram removidas]



RES: [delphi-br] Thread e DLL

2007-04-29 Por tôpico Alex Canario
Qual o problema

 

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Sérgio T. Uetanabaro
Enviada em: segunda-feira, 23 de abril de 2007 13:01
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Thread e DLL

 

Olá!

Estou tendo problemas com threads em DLL com o delphi 7. Alguém ja teve
esse problema ou sabe de alguma limitação de thread e dll?


[]´s

Sergio



[As partes desta mensagem que não continham texto foram removidas]

 

Mensagens
http://br.groups.yahoo.com/group/delphi-br/message/170799;_ylc=X3oDMTM4bmF0
Y25pBF9TAzk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BG1zZ0lkAzE3
MDc5OQRzZWMDZnRyBHNsawN2dHBjBHN0aW1lAzExNzczNTQyNDYEdHBjSWQDMTcwNzk5  neste
tópico (1)
http://br.groups.yahoo.com/group/delphi-br/post;_ylc=X3oDMTJyZ3NvZDNnBF9TAz
k3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BG1zZ0lkAzE3MDc5OQRzZW
MDZnRyBHNsawNycGx5BHN0aW1lAzExNzczNTQyNDY-?act=replymessageNum=170799
Responder (através da web) | Adicionar
http://br.groups.yahoo.com/group/delphi-br/post;_ylc=X3oDMTJlOTdjdWN0BF9TAz
k3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA250cG
MEc3RpbWUDMTE3NzM1NDI0Ng--  um novo tópico 

Mensagens
http://br.groups.yahoo.com/group/delphi-br/messages;_ylc=X3oDMTJlNGVhYnJqBF
9TAzk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA2
1zZ3MEc3RpbWUDMTE3NzM1NDI0Ng--  | Arquivos
http://br.groups.yahoo.com/group/delphi-br/files;_ylc=X3oDMTJmdmZhNnV1BF9TA
zk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA2Zpb
GVzBHN0aW1lAzExNzczNTQyNDY-  | Fotos
http://br.groups.yahoo.com/group/delphi-br/photos;_ylc=X3oDMTJlaGIyaTgzBF9T
Azk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA3Bo
b3QEc3RpbWUDMTE3NzM1NDI0Ng--  | Links
http://br.groups.yahoo.com/group/delphi-br/links;_ylc=X3oDMTJmNzI4bGhzBF9TA
zk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA2xpb
mtzBHN0aW1lAzExNzczNTQyNDY-  | Banco
http://br.groups.yahoo.com/group/delphi-br/database;_ylc=X3oDMTJjamVnM3M4BF
9TAzk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA2
RiBHN0aW1lAzExNzczNTQyNDY-  de dados 

-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 



 
http://br.groups.yahoo.com/;_ylc=X3oDMTJkdTJ0YXZnBF9TAzk3NDkwNDM3BGdycElkAz
EwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMTc3MzU0Mj
Q2 Yahoo! Grupos
Alterar
http://br.groups.yahoo.com/group/delphi-br/join;_ylc=X3oDMTJmN2xzMGpiBF9TAz
k3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA3N0bm
dzBHN0aW1lAzExNzczNTQyNDY-  configurações via web (Requer Yahoo! ID) 
Alterar configurações via e-mail: Alterar
mailto:[EMAIL PROTECTED]
mail:%20Lista%20de%20mensagens  recebimento para lista diária de mensagens
| Alterar
mailto:[EMAIL PROTECTED]
0de%20distribuição:%20Tradicional  formato para o tradicional 
Visite
http://br.groups.yahoo.com/group/delphi-br;_ylc=X3oDMTJkdnM2N2NoBF9TAzk3NDk
wNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwNmdHIEc2xrA2hwZgRzdGl
tZQMxMTc3MzU0MjQ2  seu Grupo | Termos de uso do
http://br.yahoo.com/info/utos.html  Yahoo! Grupos | Sair do grupo
mailto:[EMAIL PROTECTED] 

Atividade nos últimos dias

·  25

Novos
http://br.groups.yahoo.com/group/delphi-br/members;_ylc=X3oDMTJma2kwN21iBF9
TAzk3NDkwNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwN2dGwEc2xrA3Z
tYnJzBHN0aW1lAzExNzczNTQyNDY-  usuários

Visite
http://br.groups.yahoo.com/group/delphi-br;_ylc=X3oDMTJlNm1uZWlsBF9TAzk3NDk
wNDM3BGdycElkAzEwNTg3NzgEZ3Jwc3BJZAMyMTM3MTExMjY0BHNlYwN2dGwEc2xrA3ZnaHAEc3R
pbWUDMTE3NzM1NDI0Ng--  seu Grupo 

Yahoo! Mail

Conecte-se
http://us.lrd.yahoo.com/_ylc=X3oDMTJsbTEybWxpBF9TAzk3NDkwNDM3BF9wAzEEZ3JwSW
QDMTA1ODc3OARncnBzcElkAzIxMzcxMTEyNjQEc2VjA25jbW9kBHNsawNtYWlsBHN0aW1lAzExNz
czNTQyNDY-;_ylg=1/SIG=10ujd6ds6/**http%3A/mail.yahoo.com.br/  ao mundo

Proteção anti-spam

Muito mais espaço

Yahoo! Barra

Instale
http://us.lrd.yahoo.com/_ylc=X3oDMTJvczNwaDljBF9TAzk3NDkwNDM3BF9wAzIEZ3JwSW
QDMTA1ODc3OARncnBzcElkAzIxMzcxMTEyNjQEc2VjA25jbW9kBHNsawN0b29sYmFyBHN0aW1lAz
ExNzczNTQyNDY-;_ylg=1/SIG=111ngvtas/**http%3A/br.toolbar.yahoo.com/  grátis

Buscar sites na web

Checar seus e-mails .

Yahoo! Grupos

Crie
http://br.groups.yahoo.com/;_ylc=X3oDMTJvc3VpcGo0BF9TAzk3NDkwNDM3BF9wAzMEZ3
JwSWQDMTA1ODc3OARncnBzcElkAzIxMzcxMTEyNjQEc2VjA25jbW9kBHNsawNncm91cHMyBHN0aW
1lAzExNzczNTQyNDY-  seu próprio grupo

A melhor forma de comunicação



[As partes desta mensagem que não continham texto foram removidas]



RES: RES: [delphi-br] Thread e DLL

2007-04-24 Por tôpico Sérgio T . Uetanabaro
 
Opa!!! Entao ai vai:
 
 
Eu estava colocando alguns plugins em um software através de DLL. Um
desses plugins criava uma classe derivada de TThread na INITIALIZATION da
unit, mas qdo ele tentava dar um free na Thread o sistema travava.
Inspecionando a VCL vi que ele ficava aguardando uma mensagem de retorno da
thread para continuar a operacao mas a thread nunca era executada mesmo se
eu criasse ela com CreateSuspended=False. Nunca passava pelo metodo EXECUTE.
Dai entao fui buscar a informação no oráculo: Internet. Achei um
documentação sobre as cargas das DLL em
http://support.microsoft.com/kb/142243 e vi que poderia ter problemas na
criacao de thread logo na carga da DLL. Criei entao uma função que, logo
após a carga da DLL e a chamava pra criar as devidas threads. Com isso a
coisa foi lisa e redonda... lindo lindo!!! Entao galera, cuidado ao criar
threads em DLL. Criem metodos especificos para isso.
 
[]´s
 
 
Sergio

  _  

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Rubem Nascimento da Rocha
Enviada em: segunda-feira, 23 de abril de 2007 20:36
Para: delphi-br@yahoogrupos.com.br
Assunto: RE: RES: [delphi-br] Thread e DLL
Prioridade: Alta




Ok! Às ordens! Mas seria legal se vc postasse os detalhes de sua dúvida e o 
que vc fez pra consertar. Isso é cooperação na lista. Sua dúvida pode ser a 
de outros.

Sds.

From: Sérgio T. Uetanabaro [EMAIL PROTECTED]
mailto:suka%40codaintellisoft.com.br t.com.br
Reply-To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br
os.com.br
To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br
Subject: RES: [delphi-br] Thread e DLL
Date: Mon, 23 Apr 2007 20:28:45 -0300

Olá Ruberns,

Ja achei a solução para o problema. Eu nao posso criar threads na
inicialização da DLL. Achei um artigo na microsoft em relacao a isso. Ja 
dei
um jeito na situação. OBRIGADO!


[]´s

Sergio

 _

De: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br
[mailto:[EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br
os.com.br] Em
nome de Rubem Nascimento da Rocha
Enviada em: segunda-feira, 23 de abril de 2007 19:19
Para: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br
Assunto: RE: [delphi-br] Thread e DLL
Prioridade: Alta




Qual é o problema especificamente? Seja mais claro e objetivo. Detalhe mais
o problema que vc está tendo. Sds.

 From: Sérgio T. Uetanabaro [EMAIL PROTECTED]
mailto:suka%40codaintellisoft.com.br t.com.br
 Reply-To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br
os.com.br
 To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br 
os.com.br
 Subject: [delphi-br] Thread e DLL
 Date: Mon, 23 Apr 2007 13:01:21 -0300
 
 Olá!
 
  Estou tendo problemas com threads em DLL com o delphi 7. Alguém ja
 teve
 esse problema ou sabe de alguma limitação de thread e dll?
 
 
 []´s
 
 Sergio
 
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]
 

__
MSN Busca: fácil, rápido, direto ao ponto. http://search.
http://search. http://search.msn.com.br msn.com.br msn.com.br






[As partes desta mensagem que não continham texto foram removidas]


__
MSN Messenger: converse com os seus amigos online. 
http://messenger. http://messenger.msn.com.br msn.com.br



 


[As partes desta mensagem que não continham texto foram removidas]



RE: RES: RES: [delphi-br] Thread e DLL

2007-04-24 Por tôpico Rubem Nascimento da Rocha

Blz, Sérgio! Imaginei que fosse algo nesse sentido, mas mesmo assim era 
justo compartilhar a solução com o grupo. Passei por algo semelhante 
tentando criar uma instância de um componente pra comunicação serial em uma 
DLL, e esse componente usa threads internamente para monitorar a porta 
serial. Fuçando no codecentral.borland.com, encontrei a seguinte solução:

http://cc.codegear.com/Item/21148
D6DLLSynchronizer for Delphi 6 and 7
Unit you can add to a DLL project to make TThread.Synchronize work again

(Pra acessar o link, deve-se registrar primeiro no site caso ainda não o 
seja!)
Isso tb resolveu meu problema eficaz e elegantemente!

Valeu!
Sds.

From: Sérgio T. Uetanabaro [EMAIL PROTECTED]
Reply-To: delphi-br@yahoogrupos.com.br
To: delphi-br@yahoogrupos.com.br
Subject: RES: RES: [delphi-br] Thread e DLL
Date: Tue, 24 Apr 2007 09:21:06 -0300


Opa!!! Entao ai vai:


 Eu estava colocando alguns plugins em um software através de DLL. Um
desses plugins criava uma classe derivada de TThread na INITIALIZATION da
unit, mas qdo ele tentava dar um free na Thread o sistema travava.
Inspecionando a VCL vi que ele ficava aguardando uma mensagem de retorno da
thread para continuar a operacao mas a thread nunca era executada mesmo se
eu criasse ela com CreateSuspended=False. Nunca passava pelo metodo 
EXECUTE.
Dai entao fui buscar a informação no oráculo: Internet. Achei um
documentação sobre as cargas das DLL em
http://support.microsoft.com/kb/142243 e vi que poderia ter problemas na
criacao de thread logo na carga da DLL. Criei entao uma função que, logo
após a carga da DLL e a chamava pra criar as devidas threads. Com isso a
coisa foi lisa e redonda... lindo lindo!!! Entao galera, cuidado ao criar
threads em DLL. Criem metodos especificos para isso.

[]´s


Sergio

   _

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Rubem Nascimento da Rocha
Enviada em: segunda-feira, 23 de abril de 2007 20:36
Para: delphi-br@yahoogrupos.com.br
Assunto: RE: RES: [delphi-br] Thread e DLL
Prioridade: Alta




Ok! Às ordens! Mas seria legal se vc postasse os detalhes de sua dúvida e o
que vc fez pra consertar. Isso é cooperação na lista. Sua dúvida pode ser a
de outros.

Sds.

 From: Sérgio T. Uetanabaro [EMAIL PROTECTED]
mailto:suka%40codaintellisoft.com.br t.com.br
 Reply-To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br
os.com.br
 To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br 
os.com.br
 Subject: RES: [delphi-br] Thread e DLL
 Date: Mon, 23 Apr 2007 20:28:45 -0300
 
 Olá Ruberns,
 
 Ja achei a solução para o problema. Eu nao posso criar threads na
 inicialização da DLL. Achei um artigo na microsoft em relacao a isso. Ja
 dei
 um jeito na situação. OBRIGADO!
 
 
 []´s
 
 Sergio
 
  _
 
 De: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br
[mailto:[EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br
os.com.br] Em
 nome de Rubem Nascimento da Rocha
 Enviada em: segunda-feira, 23 de abril de 2007 19:19
 Para: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br 
os.com.br
 Assunto: RE: [delphi-br] Thread e DLL
 Prioridade: Alta
 
 
 
 
 Qual é o problema especificamente? Seja mais claro e objetivo. Detalhe 
mais
 o problema que vc está tendo. Sds.
 
  From: Sérgio T. Uetanabaro [EMAIL PROTECTED]
 mailto:suka%40codaintellisoft.com.br t.com.br
  Reply-To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br
 os.com.br
  To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br
 os.com.br
  Subject: [delphi-br] Thread e DLL
  Date: Mon, 23 Apr 2007 13:01:21 -0300
  
  Olá!
  
   Estou tendo problemas com threads em DLL com o delphi 7. Alguém ja
  teve
  esse problema ou sabe de alguma limitação de thread e dll?
  
  
  []´s
  
  Sergio
  
  
  
  
  [As partes desta mensagem que não continham texto foram removidas]
  
 
 __
 MSN Busca: fácil, rápido, direto ao ponto. http://search.
 http://search. http://search.msn.com.br msn.com.br msn.com.br
 
 
 
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]
 

__
MSN Messenger: converse com os seus amigos online.
http://messenger. http://messenger.msn.com.br msn.com.br






[As partes desta mensagem que não continham texto foram removidas]


_
MSN Busca: fácil, rápido, direto ao ponto.  http://search.msn.com.br



[delphi-br] Thread e DLL

2007-04-23 Por tôpico Sérgio T . Uetanabaro
Olá!
 
Estou tendo problemas com threads em DLL com o delphi 7. Alguém ja teve
esse problema ou sabe de alguma limitação de thread e dll?
 
 
[]´s
 
Sergio
 
 


[As partes desta mensagem que não continham texto foram removidas]



RE: [delphi-br] Thread e DLL

2007-04-23 Por tôpico Rubem Nascimento da Rocha

Qual é o problema especificamente? Seja mais claro e objetivo. Detalhe mais 
o problema que vc está tendo. Sds.

From: Sérgio T. Uetanabaro [EMAIL PROTECTED]
Reply-To: delphi-br@yahoogrupos.com.br
To: delphi-br@yahoogrupos.com.br
Subject: [delphi-br] Thread e DLL
Date: Mon, 23 Apr 2007 13:01:21 -0300

Olá!

 Estou tendo problemas com threads em DLL com o delphi 7. Alguém ja 
teve
esse problema ou sabe de alguma limitação de thread e dll?


[]´s

Sergio




[As partes desta mensagem que não continham texto foram removidas]


_
MSN Busca: fácil, rápido, direto ao ponto.  http://search.msn.com.br



RES: [delphi-br] Thread e DLL

2007-04-23 Por tôpico Sérgio T . Uetanabaro
Olá Ruberns,
 
Ja achei a solução para o problema. Eu nao posso criar threads na
inicialização da DLL. Achei um artigo na microsoft em relacao a isso. Ja dei
um jeito na situação. OBRIGADO!
 
 
[]´s
 
Sergio

  _  

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Rubem Nascimento da Rocha
Enviada em: segunda-feira, 23 de abril de 2007 19:19
Para: delphi-br@yahoogrupos.com.br
Assunto: RE: [delphi-br] Thread e DLL
Prioridade: Alta




Qual é o problema especificamente? Seja mais claro e objetivo. Detalhe mais 
o problema que vc está tendo. Sds.

From: Sérgio T. Uetanabaro [EMAIL PROTECTED]
mailto:suka%40codaintellisoft.com.br t.com.br
Reply-To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br
os.com.br
To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br os.com.br
Subject: [delphi-br] Thread e DLL
Date: Mon, 23 Apr 2007 13:01:21 -0300

Olá!

 Estou tendo problemas com threads em DLL com o delphi 7. Alguém ja 
teve
esse problema ou sabe de alguma limitação de thread e dll?


[]´s

Sergio




[As partes desta mensagem que não continham texto foram removidas]


__
MSN Busca: fácil, rápido, direto ao ponto. http://search.
http://search.msn.com.br msn.com.br



 


[As partes desta mensagem que não continham texto foram removidas]



RE: RES: [delphi-br] Thread e DLL

2007-04-23 Por tôpico Rubem Nascimento da Rocha

Ok! Às ordens! Mas seria legal se vc postasse os detalhes de sua dúvida e o 
que vc fez pra consertar. Isso é cooperação na lista. Sua dúvida pode ser a 
de outros.

Sds.

From: Sérgio T. Uetanabaro [EMAIL PROTECTED]
Reply-To: delphi-br@yahoogrupos.com.br
To: delphi-br@yahoogrupos.com.br
Subject: RES: [delphi-br] Thread e DLL
Date: Mon, 23 Apr 2007 20:28:45 -0300

Olá Ruberns,

Ja achei a solução para o problema. Eu nao posso criar threads na
inicialização da DLL. Achei um artigo na microsoft em relacao a isso. Ja 
dei
um jeito na situação. OBRIGADO!


[]´s

Sergio

   _

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Rubem Nascimento da Rocha
Enviada em: segunda-feira, 23 de abril de 2007 19:19
Para: delphi-br@yahoogrupos.com.br
Assunto: RE: [delphi-br] Thread e DLL
Prioridade: Alta




Qual é o problema especificamente? Seja mais claro e objetivo. Detalhe mais
o problema que vc está tendo. Sds.

 From: Sérgio T. Uetanabaro [EMAIL PROTECTED]
mailto:suka%40codaintellisoft.com.br t.com.br
 Reply-To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br
os.com.br
 To: [EMAIL PROTECTED] mailto:delphi-br%40yahoogrupos.com.br 
os.com.br
 Subject: [delphi-br] Thread e DLL
 Date: Mon, 23 Apr 2007 13:01:21 -0300
 
 Olá!
 
  Estou tendo problemas com threads em DLL com o delphi 7. Alguém ja
 teve
 esse problema ou sabe de alguma limitação de thread e dll?
 
 
 []´s
 
 Sergio
 
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]
 

__
MSN Busca: fácil, rápido, direto ao ponto. http://search.
http://search.msn.com.br msn.com.br






[As partes desta mensagem que não continham texto foram removidas]


_
MSN Messenger: converse com os seus amigos online. 
http://messenger.msn.com.br



[delphi-br] Thread

2007-03-22 Por tôpico Thiago Parra
aew pessoal... tenho q fazer uma parada... mas num to conseguindo.. eh 
pra faculdade.. um pouco urgente...

se alguem puder me ajudar..
nao tenho mto conhecimento de multicamadas...
desde jah agradeço
eis o enunciado...

criar uma aplicação cliente e um servidor  O cliente deve enviar uma 
mensagem para o servidor
A aplicação servidor deve conter THREAD para receber os dados do cliente 
e imprimir na tela a mensagem





___ 
Yahoo! Mail - Sempre a melhor opção para você! 
Experimente já e veja as novidades. 
http://br.yahoo.com/mailbeta/tudonovo/


Res: [delphi-br] Thread

2007-03-22 Por tôpico Jonatã Castelo Branco
da uma olhada no artigo 'Sockets' do site www.activedelphi.com.br. além disso, 
veja o texto abaixo:

Abrindo Threads vc não fica mais amarrado no evento onAccept e tb não precisa 
mais utilizar o evento onClientRead.
Desabilite o evento onClientRead e defina a Thread:
CODE  
type TSock_Thread = class(TThread)
  private
Socket :TCustomWinSocket;
  public
constructor Create(aSocket:TCustomWinSocket);
procedure   Execute; override;
end; 

Na Implementation:
CODE  
constructor TSock_Thread.Create(aSocket:TCustomWinSocket);
begin
 inherited Create(true); // cria suspensa
 Socket := aSocket; // passa o Socket
 FreeOnTerminate := true; // libera automaticamente
end;
procedure TSock_Thread.Execute;
var s:String;
begin
 While not Terminated and Socket.Connected do
 begin
   if Socket.ReceiveLength  0 then // evita o evento onClientRead
   begin
 s := Socket.ReceiveText; // recebe
 Socket.SendText(s); // envia
   end;
   Sleep(1); // evita a CPU ficar em 100%
 end;
end; 

No evento onAccept:
CODE  
procedure TForm1.ServerSocket1Accept(Sender: TObject;
 Socket: TCustomWinSocket);
var TST:TSock_Thread;
begin
 TST := TSock_Thread.Create(Socket); // instancia o objeto
 TST.Resume; // coloca a Thread em execução
end; 


- Mensagem original 
De: Thiago Parra [EMAIL PROTECTED]
Para: delphi-br@yahoogrupos.com.br
Enviadas: Quinta-feira, 22 de Março de 2007 7:42:35
Assunto: [delphi-br] Thread

aew pessoal... tenho q fazer uma parada... mas num to conseguindo. . eh 
pra faculdade.. um pouco urgente...

se alguem puder me ajudar..
nao tenho mto conhecimento de multicamadas. ..
desde jah agradeço
eis o enunciado...

criar uma aplicação cliente e um servidor O cliente deve enviar uma 
mensagem para o servidor
A aplicação servidor deve conter THREAD para receber os dados do cliente 
e imprimir na tela a mensagem





 _ _ _ _ ___ 
Yahoo! Mail - Sempre a melhor opção para você! 
Experimente já e veja as novidades. 
http://br.yahoo. com/mailbeta/ tudonovo/



__
Fale com seus amigos  de graça com o novo Yahoo! Messenger 
http://br.messenger.yahoo.com/ 

[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread

2007-03-22 Por tôpico Thiago Teixeira
Xara, é o seguinte!!! ja fiz um desses, so que em Java,
mas... a idéia é o seguinte!

no seu modelo cliente servidor, o seu servidor principal fica aguardando
conexões dos cliente, quando ele recebe alguma, você cria uma nova thread
para que ela resolva as requisições do cliente, para essa thread você
passará o socket, caso esteje utilizando tcp,  essa thread seria o seu
servidor secundário, ou escravo, como queira, no livro TCP/IP do Conner você
encontrará um ótima explicação para esse processo, como o servidor principal
fica aguardando conexões, como ele cria esse socket com a conexão do cliente
e volta  a aguardar novas conexões

Espero ter ajudado! qq estamos aí


Em 22/03/07, Thiago Parra [EMAIL PROTECTED] escreveu:

   aew pessoal... tenho q fazer uma parada... mas num to conseguindo.. eh
 pra faculdade.. um pouco urgente...

 se alguem puder me ajudar..
 nao tenho mto conhecimento de multicamadas...
 desde jah agradeço
 eis o enunciado...

 criar uma aplicação cliente e um servidor O cliente deve enviar uma
 mensagem para o servidor
 A aplicação servidor deve conter THREAD para receber os dados do cliente
 e imprimir na tela a mensagem





 ___
 Yahoo! Mail - Sempre a melhor opção para você!
 Experimente já e veja as novidades.
 http://br.yahoo.com/mailbeta/tudonovo/
 




-- 
Atenciosamente

Thiago Alves Teixeira


[As partes desta mensagem que não continham texto foram removidas]



Re: [delphi-br] Thread

2007-03-22 Por tôpico Thiago Parra
alguem tem alguma solucao??

Thiago Parra escreveu:
 
 
 aew pessoal... tenho q fazer uma parada... mas num to conseguindo.. eh
 pra faculdade.. um pouco urgente...
 
 se alguem puder me ajudar..
 nao tenho mto conhecimento de multicamadas...
 desde jah agradeço
 eis o enunciado...
 
 criar uma aplicação cliente e um servidor O cliente deve enviar uma
 mensagem para o servidor
 A aplicação servidor deve conter THREAD para receber os dados do cliente
 e imprimir na tela a mensagem
 
 
 
 
 
 ___
 Yahoo! Mail - Sempre a melhor opção para você!
 Experimente já e veja as novidades.
 http://br.yahoo.com/mailbeta/tudonovo/ 
 http://br.yahoo.com/mailbeta/tudonovo/
 
 
 
 __ Informação do NOD32 IMON 2134 (20070322) __
 
 Esta mensagem foi verificada pelo NOD32 sistema antivírus
 http://www.eset.com.br

-- 
*Thiago F. Parra*
*mail: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
*msn:* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
/9236-0866 cel/
/4109-6869 res/
/4393-3656 com/







___ 
Yahoo! Mail - Sempre a melhor opção para você! 
Experimente já e veja as novidades. 
http://br.yahoo.com/mailbeta/tudonovo/


Re: Res: [delphi-br] Thread

2007-03-22 Por tôpico Thiago Parra
opa cara!!! parece bem util isso msm hehehehe

vlw hj a noite vou testar isso!!!

ateh +

Jonatã Castelo Branco escreveu:
 
 
 da uma olhada no artigo 'Sockets' do site www.activedelphi.com.br. além 
 disso, veja o texto abaixo:
 
 Abrindo Threads vc não fica mais amarrado no evento onAccept e tb não 
 precisa mais utilizar o evento onClientRead.
 Desabilite o evento onClientRead e defina a Thread:
 CODE
 type TSock_Thread = class(TThread)
 private
 Socket :TCustomWinSocket;
 public
 constructor Create(aSocket:TCustomWinSocket);
 procedure Execute; override;
 end;
 
 Na Implementation:
 CODE
 constructor TSock_Thread.Create(aSocket:TCustomWinSocket);
 begin
 inherited Create(true); // cria suspensa
 Socket := aSocket; // passa o Socket
 FreeOnTerminate := true; // libera automaticamente
 end;
 procedure TSock_Thread.Execute;
 var s:String;
 begin
 While not Terminated and Socket.Connected do
 begin
 if Socket.ReceiveLength  0 then // evita o evento onClientRead
 begin
 s := Socket.ReceiveText; // recebe
 Socket.SendText(s); // envia
 end;
 Sleep(1); // evita a CPU ficar em 100%
 end;
 end;
 
 No evento onAccept:
 CODE
 procedure TForm1.ServerSocket1Accept(Sender: TObject;
 Socket: TCustomWinSocket);
 var TST:TSock_Thread;
 begin
 TST := TSock_Thread.Create(Socket); // instancia o objeto
 TST.Resume; // coloca a Thread em execução
 end;
 
 - Mensagem original 
 De: Thiago Parra [EMAIL PROTECTED] 
 mailto:thiagopbatera%40yahoo.com.br
 Para: delphi-br@yahoogrupos.com.br mailto:delphi-br%40yahoogrupos.com.br
 Enviadas: Quinta-feira, 22 de Março de 2007 7:42:35
 Assunto: [delphi-br] Thread
 
 aew pessoal... tenho q fazer uma parada... mas num to conseguindo. . eh
 pra faculdade.. um pouco urgente...
 
 se alguem puder me ajudar..
 nao tenho mto conhecimento de multicamadas. ..
 desde jah agradeço
 eis o enunciado...
 
 criar uma aplicação cliente e um servidor O cliente deve enviar uma
 mensagem para o servidor
 A aplicação servidor deve conter THREAD para receber os dados do cliente
 e imprimir na tela a mensagem
 
  _ _ _ _ ___
 Yahoo! Mail - Sempre a melhor opção para você!
 Experimente já e veja as novidades.
 http://br.yahoo. com/mailbeta/ tudonovo/
 
 __
 Fale com seus amigos de graça com o novo Yahoo! Messenger
 http://br.messenger.yahoo.com/ http://br.messenger.yahoo.com/
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 __ Informação do NOD32 IMON 2136 (20070322) __
 
 Esta mensagem foi verificada pelo NOD32 sistema antivírus
 http://www.eset.com.br

-- 
*Thiago F. Parra*
*mail: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
*msn:* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
/9236-0866 cel/
/4109-6869 res/
/4393-3656 com/




___ 
Yahoo! Mail - Sempre a melhor opção para você! 
Experimente já e veja as novidades. 
http://br.yahoo.com/mailbeta/tudonovo/


Re: Res: [delphi-br] Thread

2007-03-22 Por tôpico Thiago Teixeira
Kra, seguinte! te recomendo autamente vc estudar e fazer, aprendi mto quando
eu fiz, mas se vc kizer meu código, posso dar um ajeitada nele do jeito
que vc precisar, ai a gente combina!!!

Em 22/03/07, Thiago Parra [EMAIL PROTECTED] escreveu:

   opa cara!!! parece bem util isso msm hehehehe

 vlw hj a noite vou testar isso!!!

 ateh +

 Jonatã Castelo Branco escreveu:
 
 
  da uma olhada no artigo 'Sockets' do site www.activedelphi.com.br. além
  disso, veja o texto abaixo:
 
  Abrindo Threads vc não fica mais amarrado no evento onAccept e tb não
  precisa mais utilizar o evento onClientRead.
  Desabilite o evento onClientRead e defina a Thread:
  CODE
  type TSock_Thread = class(TThread)
  private
  Socket :TCustomWinSocket;
  public
  constructor Create(aSocket:TCustomWinSocket);
  procedure Execute; override;
  end;
 
  Na Implementation:
  CODE
  constructor TSock_Thread.Create(aSocket:TCustomWinSocket);
  begin
  inherited Create(true); // cria suspensa
  Socket := aSocket; // passa o Socket
  FreeOnTerminate := true; // libera automaticamente
  end;
  procedure TSock_Thread.Execute;
  var s:String;
  begin
  While not Terminated and Socket.Connected do
  begin
  if Socket.ReceiveLength  0 then // evita o evento onClientRead
  begin
  s := Socket.ReceiveText; // recebe
  Socket.SendText(s); // envia
  end;
  Sleep(1); // evita a CPU ficar em 100%
  end;
  end;
 
  No evento onAccept:
  CODE
  procedure TForm1.ServerSocket1Accept(Sender: TObject;
  Socket: TCustomWinSocket);
  var TST:TSock_Thread;
  begin
  TST := TSock_Thread.Create(Socket); // instancia o objeto
  TST.Resume; // coloca a Thread em execução
  end;
 
  - Mensagem original 
  De: Thiago Parra [EMAIL PROTECTED]thiagopbatera%40yahoo.com.br
  mailto:thiagopbatera%40yahoo.com.br
  Para: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.brmailto:
 delphi-br%40yahoogrupos.com.br
  Enviadas: Quinta-feira, 22 de Março de 2007 7:42:35
  Assunto: [delphi-br] Thread
 
  aew pessoal... tenho q fazer uma parada... mas num to conseguindo. . eh
  pra faculdade.. um pouco urgente...
 
  se alguem puder me ajudar..
  nao tenho mto conhecimento de multicamadas. ..
  desde jah agradeço
  eis o enunciado...
 
  criar uma aplicação cliente e um servidor O cliente deve enviar uma
  mensagem para o servidor
  A aplicação servidor deve conter THREAD para receber os dados do cliente
  e imprimir na tela a mensagem
 
   _ _ _ _ ___
  Yahoo! Mail - Sempre a melhor opção para você!
  Experimente já e veja as novidades.
  http://br.yahoo. com/mailbeta/ tudonovo/
 
  __
  Fale com seus amigos de graça com o novo Yahoo! Messenger
  http://br.messenger.yahoo.com/ http://br.messenger.yahoo.com/
 
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
  __ Informação do NOD32 IMON 2136 (20070322) __
 
  Esta mensagem foi verificada pelo NOD32 sistema antivírus
  http://www.eset.com.br

 --
 *Thiago F. Parra*
 *mail: [EMAIL PROTECTED] %2Athiagopbatera%40yahoo.com.brmailto:
 [EMAIL PROTECTED] thiagopbatera%40yahoo.com.br
 *msn:* [EMAIL PROTECTED] thiagopbatera%40hotmail.com mailto:
 [EMAIL PROTECTED] thiagopbatera%40hotmail.com
 /9236-0866 cel/
 /4109-6869 res/
 /4393-3656 com/


 ___
 Yahoo! Mail - Sempre a melhor opção para você!
 Experimente já e veja as novidades.
 http://br.yahoo.com/mailbeta/tudonovo/

 




-- 
Atenciosamente

Thiago Alves Teixeira


[As partes desta mensagem que não continham texto foram removidas]



[delphi-br] Thread e Form

2006-06-21 Por tôpico Filipe Belchior
olá, paz,

tenho um form com um progressbar somente, e no onshow do form,
inicio uma thread que faz alguns processos e atualiza a progressbar
do form, usando a boa prática dentro do Synchronize().

mas o refresh do form, na progressbar, só ocorre se eu usar o
application.processmessage... é assim mesmo? ou esqueci algo?


FILIPE BELCHIOR



___ 
Abra sua conta no Yahoo! Mail: 1GB de espaço, alertas de e-mail no celular e 
anti-spam realmente eficaz. 
http://mail.yahoo.com.br/


-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





[delphi-br] THREAD EM DELPHI

2006-02-06 Por tôpico ONTREUS
Olá amigos, sou novo na lista, e é a primeira vez que post uma 
mensagem aki.
Estou trabalhando em um software de cliente e servidor para uma 
locadora.
O Cliente se conecta corretamente com o Servidor. Mas...
O cliente trava depois de uma tarefa executada...
Um amigo me disse que deveria usar THREAD, que é uma tecnica de 
multiprocessamento, alguém poderia me passar um link que possua um 
projeto sobre o assunto para fazer um Download.
Obrigado a todos 








-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




[delphi-br] THREAD EM DELPHI -ajuda

2006-02-06 Por tôpico ONTREUS
Ja postei duas mensagens aki e ate Agora nenhuma saiu, PORQUE EU NÃO 
SEI.
Estou criando uma ferramenta do tipo Cliente - Servidor eo cliente 
se conecta com o servidor de maneira correta,
Quando envio um comando para o servidor, ESTE executa corretamente, 
só que o cliente trava depois.
Um amigo disse que tinha que usar Threads
Uma parte do codigo do cliente é esta:
// Função Thread de envio de comando para abertura do CD-ROM
function OpenCDThread:DWORD;stdcall;
var
IdTCPClient1: TIdTCPClient;
begin
 IdTCPClient1.SendCmd ('opencd');
end;
// Procedure que ao se executar o clique no botão
// deve executar a função thread
procedure TForm1.btnOpenCDClick(Sender: TObject);
var
Thid : DWORD;
begin
CreateThread(nil, 0, @OpenCDThread, nil, Thid );
end;

Esta dando um erro em @OpenCD como não declarad, como declaro esta 
função dentro de uma procedure?

Eu também fiz este codigo aki alternativo:

// Função Thread de envio de comando para abertura do CD-ROM
procedure Opencd(user:Pointer);
var
IdTCPClient1: TIdTCPClient;
begin
 IdTCPClient1.SendCmd ('opencd');
end;
// Procedure que ao se executar o clique no botão
// deve executar a função thread
procedure TForm1.btnOpenCDClick(Sender: TObject);
var
Thid : DWORD;
begin
CreateThread(nil, 0, @OpenCDThread, nil, Thid );
end;

Alguém q ja trabalhou com Threads no Delphi poderia ajudar, 
é claro que pra isso a minha mensagem deveria ser postada Srº 
Moderador
 








-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [delphi-br] Thread

2005-12-12 Por tôpico Felipe Giotto
Olá, Ilton!

O comando Terminate não serve para finalizar o processamento de uma 
Thread. A classe TThread possui uma propriedade Booleana chamada 
Terminated... O comando Terminate serve somente para marcar o flag 
Terminated como True. Porém, o código responsável pela finalização da 
execução da Thread deve ser tratada dentro do próprio código da Thread.

Espero ter ajudado,

Felipe Giotto ;-)



Ilton Vieira Junior wrote:

 Boa Tarde.

 Pessoal, eu montei uma thread aqui, que fica em loop infinito, só que
 quando eu tento finaliza-la, aparentemente isso não ocorre.
 Tentei:

 VariavelThread.Terminate;

 Poré, ela continua rodando. Como devo proceder para forçar sua 
 finalização??

 Obrigado,

 Ilton



 -- 
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 





 *Yahoo! Grupos, um serviço oferecido por:*
 PUBLICIDADE
 http://br.rd.yahoo.com/SIG=12fshq8sp/M=384888.7585449.8468440.1588051/D=brclubs/S=2137111264:HM/Y=BR/EXP=1134230815/A=3154524/R=0/SIG=12igfl26t/*http://www.momentumquiz.com.br/index.php?md5ref=372BBEE98E9544bd8B2F9E87847EEEBE
  



 
 *Links do Yahoo! Grupos*

 * Para visitar o site do seu grupo na web, acesse:
   http://br.groups.yahoo.com/group/delphi-br/

 * Para sair deste grupo, envie um e-mail para:
   [EMAIL PROTECTED]
   mailto:[EMAIL PROTECTED]

 * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
   Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [delphi-br] Thread

2005-12-12 Por tôpico Ilton Vieira Junior
Bom Dia Felipe.

Então devo criar um método Destroy para a Thread, onde a execuçãodo loop 
seja interrompida???

Com devo chamar a Thread, deste modo : NomeThread.Destroy; ???

Obrigado,

Ilton

Felipe Giotto escreveu:

 Olá, Ilton!

 O comando Terminate não serve para finalizar o processamento de uma
 Thread. A classe TThread possui uma propriedade Booleana chamada
 Terminated... O comando Terminate serve somente para marcar o flag
 Terminated como True. Porém, o código responsável pela finalização da
 execução da Thread deve ser tratada dentro do próprio código da Thread.

 Espero ter ajudado,

 Felipe Giotto ;-)





-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [delphi-br] Thread

2005-12-12 Por tôpico Felipe Giotto
Olá, Ilton!! Na verdade, é um pouco mais simples!! :D

Utilize o Terminate normalmente... Dentro do seu loop, verifique se a 
flag Terminated é True. Se ela for True, encerre o loop e desaloque a 
Thread! Isso deve funcionar!!

Espero ter ajudado,

Felipe Giotto ;-)



Ilton Vieira Junior wrote:

 Bom Dia Felipe.

 Então devo criar um método Destroy para a Thread, onde a execuçãodo loop
 seja interrompida???

 Com devo chamar a Thread, deste modo : NomeThread.Destroy; ???

 Obrigado,

 Ilton

 Felipe Giotto escreveu:

  Olá, Ilton!
 
  O comando Terminate não serve para finalizar o processamento de uma
  Thread. A classe TThread possui uma propriedade Booleana chamada
  Terminated... O comando Terminate serve somente para marcar o flag
  Terminated como True. Porém, o código responsável pela finalização da
  execução da Thread deve ser tratada dentro do próprio código da Thread.
 
  Espero ter ajudado,
 
  Felipe Giotto ;-)
 




 -- 
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 





 *Yahoo! Grupos, um serviço oferecido por:*
 PUBLICIDADE


 
 *Links do Yahoo! Grupos*

 * Para visitar o site do seu grupo na web, acesse:
   http://br.groups.yahoo.com/group/delphi-br/

 * Para sair deste grupo, envie um e-mail para:
   [EMAIL PROTECTED]
   mailto:[EMAIL PROTECTED]

 * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
   Serviço do Yahoo! http://br.yahoo.com/info/utos.html.




-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




[delphi-br] Thread e VCL

2005-12-12 Por tôpico Matheus
Bom pessoal, surgiu uma dúvida agora que às vezes pode ser bem simples de
ser respondida.
 
Trabalho com threads a um bom tempo no delphi e sei que chamadas de funções
VCL devem ser evitadas ao máximo, e quando forem realmente necessárias,
devem ser chamadas dentro do synchronize. Mas... como saber quando uma
função é VCL?
 
por exemplo, o showmessage é uma função VCL.. 
Existe algum jeito de saber quais são VCL para procurar alguma alternativa
thread-safe?? 
 
Obrigado.


[As partes desta mensagem que não continham texto foram removidas]



-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




RES: [delphi-br] Thread

2005-12-11 Por tôpico Matheus
Você precisa verificar dentro da sua thread, no loop se o valor da variável
terminated é true. Caso seja true, cancelar o processamento com um break ou
exit.


Dentro da thread:


While (condição) do
Begin
  if terminated then 
  begin
//efetua os procedimentos adicionais para cancelamento da thread.
Break;
  end;  

  //processamento normal da thread.

End;


 

-Mensagem original-
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Ilton Vieira Junior
Enviada em: sábado, 10 de dezembro de 2005 12:08
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Thread

Boa Tarde.

Pessoal, eu montei uma thread aqui, que fica em loop infinito, só que quando
eu tento finaliza-la, aparentemente isso não ocorre.
Tentei:

VariavelThread.Terminate;

Poré, ela continua rodando. Como devo proceder para forçar sua finalização??

Obrigado,

Ilton



--
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 


 
Links do Yahoo! Grupos




 






-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




Re: [delphi-br] Thread

2005-12-11 Por tôpico Alcistemas Informática
Testouo BREAK ?

- Original Message - 
From: Ilton Vieira Junior [EMAIL PROTECTED]
To: delphi-br@yahoogrupos.com.br
Sent: Saturday, December 10, 2005 12:07 PM
Subject: [delphi-br] Thread


 Boa Tarde.

 Pessoal, eu montei uma thread aqui, que fica em loop infinito, só que
 quando eu tento finaliza-la, aparentemente isso não ocorre.
 Tentei:

 VariavelThread.Terminate;

 Poré, ela continua rodando. Como devo proceder para forçar sua 
 finalização??

 Obrigado,

 Ilton



 -- 
  FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 



 Links do Yahoo! Grupos






 






___ 
Yahoo! doce lar. Faça do Yahoo! sua homepage. 
http://br.yahoo.com/homepageset.html 





-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




[delphi-br] Thread

2005-12-10 Por tôpico Ilton Vieira Junior
Boa Tarde.

Pessoal, eu montei uma thread aqui, que fica em loop infinito, só que 
quando eu tento finaliza-la, aparentemente isso não ocorre.
Tentei:

VariavelThread.Terminate;

Poré, ela continua rodando. Como devo proceder para forçar sua finalização??

Obrigado,

Ilton



-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




[delphi-br] Thread

2005-11-27 Por tôpico Ilton Vieira Junior
Bom dia a todos, ou algo similar.

Criei uma thread aqui que precisa ficar em loop infinito, porem 
necessito destruir o processo quando encerro a aplicação.
Queria saber como criar uma váriável glocal, pois a única forma que 
consegui foi local, pois quando tento declara-la no var da unit, é 
acusado um problema, coisa que dentro da procedure create ou show da 
unit não ocorre:
[Error] U_Principal.pas(73): Undeclared identifier: 'TAtualizacaoThread'


Obrigado,
Ilton






-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





[delphi-br] Thread + Delphi

2005-11-23 Por tôpico Ronaldo Sousa
Boa noite a todos...

Amigos estou com um problema que já tentei solucionar sozinho mas não 
conseguir, e como sempre venho pedir um help.

É o seguinte:

Em um form tenho 3 botões
Clientes
Produtos
Fornecedores

esses botões server para atualizar uma base de dados que fica off line, só 
que quando click no botão clientes o sistema fica inoperante enquanto os 
cliente não forem migrado. Eu queria criar um Thread q eu podesse clicar num 
botão e o sistema não travasse assim poderia fazer atualizações nas tres 
base ao mesmo tempo.

Qualquer ajuda será bem vinda...



ronperso

_
MSN Busca: fácil, rápido, direto ao ponto.  http://search.msn.com.br



-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




  1   2   >