GARANTIR DESCONTO

Fórum Criar componente em runtime #350713

18/12/2007

0

bom dia a todos

gostaria de saber se é possivel eu criar um componente em runtime e usar na unit inteira sem ter que criar novamente.

No meu caso tenho uma TREAD que faz conexão com Servidor FTP e realiza o download, mas pra isso eu coloquei essa tread ´ligada´ a um form onde coloquei o IdFTP para que eu possa usar na unit inteira.


Facc

Facc

Responder

Posts

18/12/2007

Facc

ninguem?


Responder

Gostei + 0

18/12/2007

Massuda

Se o TIdFTP vai ser usado apenas pela thread, crie ele dentro da thread, no TThread.Execute, não em um form. Aliás, a thread só pode interagir com o form de modo sincrono/sincronizado através do método TThread.Synchronize.


Responder

Gostei + 0

18/12/2007

Facc

Se o TIdFTP vai ser usado apenas pela thread, crie ele dentro da thread, no TThread.Execute, não em um form. Aliás, a thread só pode interagir com o form de modo sincrono/sincronizado através do método TThread.Synchronize.


mas é isso que eu quero... como faço pra criar o componente e ser usado na tread inteira?
Ela está dividida em várias partes, uma pra conectar, verificar a versão e a outra pra download


Responder

Gostei + 0

18/12/2007

Massuda

Declare o TIdFTP na classe da sua thread (pode ser na parte private); crie o TIdFTP no início do TThread.Execute e destrua ele no final do TThread.Execute OU, se precisar do TIdFTP antes/depois da thread executar, crie o TIdFTP em TThread.Create e destrua ele no TThread.Destroy.


Responder

Gostei + 0

18/12/2007

Facc

Declare o TIdFTP na classe da sua thread (pode ser na parte private); crie o TIdFTP no início do TThread.Execute e destrua ele no final do TThread.Execute OU, se precisar do TIdFTP antes/depois da thread executar, crie o TIdFTP em TThread.Create e destrua ele no TThread.Destroy.


To tentando fazer isso que vc me passou, mas qndo eu coloco
procedure Thread.Create;
var
  IdFTP: TIdFTP;
begin
  IdFTP := TIdFTP.Create(Self);
end;


dá erro de tipos incompativeis Thread e Componente...

Voce poderia me dar apenas como e onde eu posso declarar? Sou novato com esse de negocio de Thread


Responder

Gostei + 0

18/12/2007

Massuda

Não passe Self no TIdFTP.Create, passe nil.

Esse parametro desse construtor serve para identificar quem irá destruir o componente. No caso, vai ser você mesmo, não algum form ou coisa parecida.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar