Fórum Imagem de Espera, como fazer? #342771

18/06/2007

0

Olá amigos, tenho uma imagem (GIF) que fica mexendo, que supostamento deveria mexer, para indicar ao usuario que o sistema está processando algo..

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

Titanius

Responder

Posts

18/06/2007

Macario

OLá [b:9e95324775]titanius[/b:9e95324775], boa tarde.

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:


Responder

Gostei + 0

18/06/2007

Titanius

Alguns processos sim, outros não...

Por falar em Thread.. não teria como fazer isso com ela não, porque no seu caso não dá certo?

[]s


Responder

Gostei + 0

18/06/2007

Macario

... Por falar em Thread.. não teria como fazer isso com ela não, porque no seu caso não dá certo? []s


É 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´.


Responder

Gostei + 0

18/06/2007

Titanius

Isto não deveria acontecer, não é? Já que a Thread é separada...

[]s


Responder

Gostei + 0

18/06/2007

Macario

Isto não deveria acontecer, não é? Já que a Thread é separada... []s


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.


Responder

Gostei + 0

18/06/2007

Araujojunior

Em alguns processos eu tenho utilizado o comando

Application.ProcessMessages;

Tem funcionando normalmente atualização de progressbar, exibição de gifs com processos demorados que realizo aqui....

Vlw


Responder

Gostei + 0

18/06/2007

Titanius

Em alguns processos eu tenho utilizado o comando Application.ProcessMessages; Tem funcionando normalmente atualização de progressbar, exibição de gifs com processos demorados que realizo aqui.... Vlw


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...

Exato, Veja este post no ForumWeb: Dados Tentei os exemplos lá postados, mas sem sucesso. Para processos sem envolvimento de DataSet funciona.


Macario, irei testar aqui... qualquer coisa posto..

[]s


Responder

Gostei + 0

19/06/2007

Macario

Em alguns processos eu tenho utilizado o comando Application.ProcessMessages; Tem funcionando normalmente atualização de progressbar, exibição de gifs com processos demorados que realizo aqui.... Vlw


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)


Responder

Gostei + 0

19/06/2007

Macario

Olá bom dia colegas.

[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)


Responder

Gostei + 0

19/06/2007

Titanius

Olá bom dia colegas. [b:2e26d41d85]titanius[/b:2e26d41d85], você usa a [b:2e26d41d85]JVCL[/b:2e26d41d85]? Li na edição da CD nº 81 um artigo do [b:2e26d41d85]Michael Benford[/b:2e26d41d85] sobre alguns componentes da [b:2e26d41d85]JVCL[/b:2e26d41d85] e lá ele indica o uso do [b:2e26d41d85]JvWaitingGradient[/b:2e26d41d85] 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)

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


Responder

Gostei + 0

19/06/2007

Titanius

Macario.. Seguinte amigo.. estive vendo o componente do JVCL, nele tem um que chama TGIFAnimator.

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


Responder

Gostei + 0

19/06/2007

Macario

Olá.

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)


Responder

Gostei + 0

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

Aceitar