Fórum Imagem de Espera, como fazer? #342771
18/06/2007
0
Porém, quando o processamento é demorado, a imagem não mexe, o sistema meio que trava, e eu não consigo dar um ProcessMessage, pois já está dentro de um processo.
Minha pergunta é: existe uma maneira de criar uma rotina a parte para esta imagem? como seria?
desde já agradeço
[]s
Titanius
Curtir tópico
+ 0Posts
18/06/2007
Macario
Colega to nesse ´embate´ tambem ja faz um tempo.
O seu processo envolve Comando SQL(DML,DDl,etc)? Se for é o mesmo caso que o meu.
Nem usando recurso de TThread to conseguindo.
:roll:
Gostei + 0
18/06/2007
Titanius
Por falar em Thread.. não teria como fazer isso com ela não, porque no seu caso não dá certo?
[]s
Gostei + 0
18/06/2007
Macario
É justamente isto que estou tentando há um tempo descobrir.
O que estou fazendo é tentanto animar uma ProgressBar, quando executo uma SP via dbexpress+MSSQL a TThread simplesmente ´CONGELA´.
Gostei + 0
18/06/2007
Titanius
[]s
Gostei + 0
18/06/2007
Macario
Exato,
Veja este post no ForumWeb: [url=http://www.forumweb.com.br/foruns/index.php?showtopic=45825url]Dados[/url]
Tentei os exemplos lá postados, mas sem sucesso.
Para processos sem envolvimento de DataSet funciona.
Gostei + 0
18/06/2007
Araujojunior
Application.ProcessMessages;
Tem funcionando normalmente atualização de progressbar, exibição de gifs com processos demorados que realizo aqui....
Vlw
Gostei + 0
18/06/2007
Titanius
O problema disso é que.. vamos supor que você esteja criando um Form ou Atualizando um SQL. não tem como inserir um ProcessMessage no meio deles... então teria que ser algo independente...
Macario, irei testar aqui... qualquer coisa posto..
[]s
Gostei + 0
19/06/2007
Macario
Olá bom dia, primeiramente obrigado por sua atenção.
Então o Application.ProcessMessages é um bom recurso, mas quando se esta no escopo da aplicação principal.
No meu caso eu executo uma SP no banco de dados (que sai do escopo principal). Por tanto não ha como fazer uso deste recurso.
8)
Gostei + 0
19/06/2007
Macario
[b:034686ef5d]titanius[/b:034686ef5d], você usa a [b:034686ef5d]JVCL[/b:034686ef5d]?
Li na edição da CD nº 81 um artigo do [b:034686ef5d]Michael Benford[/b:034686ef5d] sobre alguns componentes da [b:034686ef5d]JVCL[/b:034686ef5d] e lá ele indica o uso do [b:034686ef5d]JvWaitingGradient[/b:034686ef5d] para indicar ao usuário que esta sendo efetuado um processo pela aplicação.
Ainda não tive oportunidade de testar se alguem se habilitar.
[]´s 8)
Gostei + 0
19/06/2007
Titanius
Olá..
Sim, realmente existe tal componente, mas ele trava do mesmo jeito, pelo menos no que eu consegui simular aqui... :o(
Ainda não tive tempo pra testar o Thread, minha máquina foi pra UTI... :roll: Assim que terminar de instalar tudo, vou testar...
[]s
Gostei + 0
19/06/2007
Titanius
Pois bem, que estive vendo no código fonte, ele utiliza uma Thread caso queira ser usado. Pois bem... coloquei lá as seguintes opções:
AsyncDrawing := True Threaded := True;
Antes do Processo:
JvGIFAnimator1.Animate := True; Application.ProcessMessages;
No final do processo:
JvGIFAnimator1.Animate := False; Application.ProcessMessages;
Comigo funcionou perfeitamente, inclusive quando busco os dados numa Query pelo IBX... Verifica aí se serve para você, ok?
[]s
Gostei + 0
19/06/2007
Macario
Testei o [b:6487145697]JvGIFAnimator [/b:6487145697]e funcionou. O que vou fazer agora é estudar a implementação interna dele para ver como age a [b:6487145697]JvTThread [/b:6487145697]que ele cria e tentar aplicar isso para aplicação principal, pois ela continua com aparencia de ´[b:6487145697]congelada[/b:6487145697]´;
O que vocês acham?
8)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)