Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Anderson Nunes

[Resolvido] Problema com form

Recommended Posts

Estou enfrentando a seguinte situação, tenho um form que deverá ser aberto mais de uma vez pelo sistema, sendo que este form acessa informações da internet através de uma thread para não travar a aplicação. Só que quando abro aprimeira vez, tudo certo, agora a partir da segunda vez, não importa quantas eu abrir e na qual eu clicar no botão do processamento da minha thread, sempre ira atualizar os dados no ultimo aberto e não naquele que eu cliquei. Alguem tem uma saida para minha situação, não sei se é na abertura do form ou no processamento da thread que esta errado. Preciso de ajuda, obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se entendi seu problema e pelo que descreve, acredito que seja na maneira como você abre esse form...

 

você deixou tudo como o Delphi cria por padrão e apenas deu um show no form?

 

acredito que colocar ele para a outra janela em project->options (não lembro o nome certo dos 2 treeview que aparecem)

e criá-lo no momento da abertura resolva.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se entendi seu problema e pelo que descreve, acredito que seja na maneira como você abre esse form...

 

você deixou tudo como o Delphi cria por padrão e apenas deu um show no form?

 

acredito que colocar ele para a outra janela em project->options (não lembro o nome certo dos 2 treeview que aparecem)

e criá-lo no momento da abertura resolva.

 

Estou criando ele no memomento da abertura.

 

meuform := tmeuform.create(nil);

meuform.show;

 

Estive pensando que o problema pode ser na thread, por que ela sincroniza um processo no meuform, por exemplo,

 

meuform.label.caption:='valor';

 

assim, toda vez que a thread é atualizadda ela busca meuform e encontra a ultima instacia dele criada. Acho que é isso, mas não sei como resolver de forma correta. Se algum puder me ajudar mais seria otimo.

 

Obrigado amigo, pela resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Era exatamente isso que eu disse e ja resolvi sozinho. Para quem precisar seguem algumas instruções.

 

O problema acontecia por que a thread estava tentando sincronizar com o formulario, porem, como havia mais de uma instancia aberta quando o thread atualizava sempre buscava o ultimo na memoria. Assim, todas as outras funcionalidades que dependiam apenas do form funcionavam corretamente e isso não. resolvi simplesmente criando a thread dentro do proprio formulario assim todas as instancias executam a sua propria thread. É claro, outra opção seria remover os comandos que sincronizam os componentes do form e usar variaveis, buscando direto do form após a consulta. Essa é uma maneira que funcionou para mim, deve haver uma maneira melhor, acredito eu. De qualquer forma, como apenas um usuário me ajudou, seria muito bem vindas outras dicas.

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.