Timer vs Application.ProcessMessages

342 views
Skip to first unread message

Gustavo Luis H

unread,
Oct 18, 2011, 12:04:04 PM10/18/11
to DUG-RS - Delphi Users Group Rio Grande do Sul
Boa Tarde Galera,
Seguinte tenho um timer que é disparado de 10 em 10 segundos por
exemplo,
esse timer chama uma procedura que faz um processo meio pesado, tem um
for e tal ali e uma progressa bar tambem , como o processo é meio
pesado resolvi colocar a Application.ProcessMessages no final do lopp
para que a aplicação nao pareça travada, so que pelo geito a cada
Application.ProcessMessages o Timer reinicia o contador ...e
logicamente sai fora do loop sem que esteja completo o processo ...
Ja tentei tambem com o form.Repaint, mas nao da o mesmo resultado do
ProcessMessages, alguma dica ?

Jefferson Follmann

unread,
Oct 18, 2011, 12:11:56 PM10/18/11
to dug...@googlegroups.com
Inicio do processo:
  Windows.LockWindowUpdate(Self.Handle);

Final do processo:
  Windows.LockWindowUpdate(0);

Já tentou?
Já pensou em usar Thread no teu caso?

Abraço!


--
Você recebeu esta mensagem porque está inscrito no "DUG-RS -
Delphi Users Group Rio Grande do Sul" em Grupos do Google.
Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul
Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
dug-rs-un...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/dug-rs?hl=pt-BR
Twitter: @dugrs



--
Jefferson Luis Follmann
Fone: (51) 9818-1235


Samuel N. Junior

unread,
Oct 18, 2011, 12:14:59 PM10/18/11
to dug...@googlegroups.com
Boa tarde Gustavo,

Isso está relacionado com o Application.ProcessMessages, mas sim com a rotina "dentro" do Timer que está demorando mais que 10 segundos para ser concluída.

No início da chamada do evento "OnTimer" coloque:

Timer1.Enabled:=False;

E ao terminar a rotina de "dentro" do timer coloque:

Timer1.Enabled:=True;

É claro que você deverá substituir o nome Timer1 pelo nome do seu componente Timer.

[ ]s


Samuel Natali Junior
NatSam Consultoria Ltda
Fone: (11) 4688-1000
Skype: Hipercusto
www.natsam.com.br
www.hipercusto.com.br
Conheça o Hipercusto e veja como ele pode ajudar sua indústria.
Faça um download e avalie o produto gratuitamente durante 20 dias.


www.tr7.com.br o seu site de buscas na web

Felipe Dal Pizzol

unread,
Oct 18, 2011, 12:16:03 PM10/18/11
to dug...@googlegroups.com
Chê Gustavo, onde que tu inicializa o teu timer?
avaliou isso?

Tem gente que gosta de usar o FormActivate pra algumas coisas, e já
vi gente usando a ativação do timer nesse evento. Só que se tu der
um show, ou fazer qualquer coisa em outra janela, o Activate vai ser
executado de novo e assim por diante.

Dá uma conferida nisso, pra ver se consegue dar um jeito!

Dal Pizzol.



Cordialmente,
Felipe Dornelles Dal'Pizzol

Gustavo Luis Hinterholz

unread,
Oct 18, 2011, 12:20:09 PM10/18/11
to dug...@googlegroups.com
Eu inicializo ele no OnCreate do Form, depois ele fica rodando de 10 em 10 seg.

Gustavo Luis Hinterholz

unread,
Oct 18, 2011, 12:22:21 PM10/18/11
to dug...@googlegroups.com
Show ...
Nem me lembrei dessa logica ..
As vezemos estamos tanto em cima do problema e a solução é tao simples!
vlw mesmo

João Carlos Cordeiro

unread,
Oct 18, 2011, 6:03:55 PM10/18/11
to dug...@googlegroups.com
Mida - Conversor de aplica��o VCL para FireMonkey no Delphi XE2

http://www.youtube.com/watch?v=22MbO_HzU-E

Ab�s

Jo�o Carlos Cordeiro
Curitiba - PR

Gustavo Luis Hinterholz

unread,
Oct 18, 2011, 6:13:23 PM10/18/11
to dug...@googlegroups.com
Pelo o que mais me chamou a atenção foi a questão visual que foi modificada, nao conheco muito esse fireMonkey, quais os ganhos em relação a VCL ?

Em 18 de outubro de 2011 20:03, João Carlos Cordeiro <jccor...@globo.com> escreveu:
Mida - Conversor de aplicação VCL para FireMonkey no Delphi XE2

http://www.youtube.com/watch?v=22MbO_HzU-E

Abçs

João Carlos Cordeiro
Curitiba - PR

--
Você recebeu esta mensagem porque está inscrito no "DUG-RS -
Delphi Users Group Rio Grande do Sul" em Grupos do Google.
Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul
Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para

Gustavo Luis Hinterholz

unread,
Oct 18, 2011, 6:44:52 PM10/18/11
to dug...@googlegroups.com
Fui olhar os exemplos que tem do Firemonkey no XE 2 e to apavorado...
Nem parece Delphi!
Uoooooooooool
Agora sim vamos poder desenvolver aplicacoes com potencial no design tambem!
Show de bola mesmo

Gustavo Segalla

unread,
Oct 19, 2011, 12:49:01 PM10/19/11
to dug...@googlegroups.com

Não é só a questão visual, imaginem seu sistema rodando em Android, iOS, Web etc...

Flavio Augusto Toldo

unread,
Oct 19, 2011, 3:00:17 PM10/19/11
to dug...@googlegroups.com
uais as plataformas que ja estão suportando firemonkey?(ja suporta android e linux?)


---------------------------------------------------------------------------------------------------------
Até q eu tentei assinar aqui mas a caneta naum funcionou! Saco! Agora meu monitor tá sujo !

Guild Bad Clusters
De herbalismo a programação!


Em 19 de outubro de 2011 14:49, Gustavo Segalla <seg...@gmail.com> escreveu:

Não é só a questão visual, imaginem seu sistema rodando em Android, iOS, Web etc...

--
Você recebeu esta mensagem porque está inscrito no "DUG-RS -
Delphi Users Group Rio Grande do Sul" em Grupos do Google.
Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul
Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para

Steve Narancic

unread,
Oct 19, 2011, 3:07:02 PM10/19/11
to dug...@googlegroups.com
Windows e mac

Steve Narancic
Conectado por disponivel movel™


-----Mensagen Original-----

João Carlos Cordeiro

unread,
Oct 19, 2011, 3:08:31 PM10/19/11
to dug...@googlegroups.com
O Delphi Xe suporte desktop 32 e 64 bits, iOs ( leia-se iPhone ) e Mac ... em breve teremos Linux, WindowsPhone e Android ... mais ou menos nessa ordem ...

Atentem que o mesmo programa pdoe ser para 32, 64 ou Mac ... enquanto que se for desenvolvido para Móbile é diferente ...

O que for para iOS poderá ser para Androide e WindowsPhone tb.

abçs,

João Carlos Cordeiro

João Carlos

Flavio Augusto Toldo

unread,
Oct 19, 2011, 3:14:43 PM10/19/11
to dug...@googlegroups.com
desculpe a pressão, mas este breve seria... xe3,xe4, patch/add para o xe2? 2012,2013?
ou não definido ainda?

João Carlos Cordeiro

unread,
Oct 19, 2011, 3:30:47 PM10/19/11
to dug...@googlegroups.com
Olha Flávio, no último Delphi Tour  aqui em Curitiba, cerca de 45 dias atrás, o Tertius da Embarcadero disse que não podem confirmar para quando, mas outras pessoas me falaram que a idéia é lançarem para Linux e WindowsPhone em breve e que Android seria para final 2012 ... mas não é nada oficial ...

Acabei de receber a Active Delphi nr 91 com excelente artigo do Andreano Lanusse sobre Delphi XE2 + FireMonkey, VCL Styles e o novo DataSnap ... vale a pena ver ...

Tb tem outro excelente artigo sobre VCL Styles do Kelver Merlotti, entre outros ...



Abçs,


João Carlos Cordeiro
Curitiba - PR

Douglas Mai

unread,
Oct 19, 2011, 3:31:22 PM10/19/11
to dug...@googlegroups.com
Como o Andreano falou no Delphi Meeting, eles estão trabalhando no CrossPlataform e será disponibilizado o mais breve possível, quanto ao conversor,  de windows x32 para x64 não precisa usá-lo, só para desktop MAC pois para Mobile terá que ser redesenhado de qualquer forma, caso contrário seria o mesmo que acessar um site de desktop no celular (quem já fez sabe como é ruim de trabalhar).

Flávio Freitas

unread,
Nov 6, 2011, 8:20:19 PM11/6/11
to dug...@googlegroups.com
Amigo,

faça o seguinte:

no início do seu timer coloque a linha: SeuTimer.Enabled := false;  e no final do timer vc coloca: SeuTimer.Enabled := true;

o que está acontecendo é o seguinte: este seu timer executa a cada 10 segundos, e como ele é demorado, se acontecer de chegar os 10 segundos novamente o timer é reiniciado. Então se vc colocar SeuTimer.Enabled := false; no início, o contador do timer fica parado até chegar na última linha SeuTimer.Enabled := true; então começa a contar o tempo do timer até chegar 10 segundos novamente.

--
Você recebeu esta mensagem porque está inscrito no "DUG-RS -
Delphi Users Group Rio Grande do Sul" em Grupos do Google.
Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul
Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
dug-rs-un...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/dug-rs?hl=pt-BR
Twitter: @dugrs



--
Ats,

Flávio Freitas.
Reply all
Reply to author
Forward
0 new messages