Problemas com FOR, Alguém pode ajudar-me??
Eh o seguinte, eu tenho um [b:28b7414802]For[/b:28b7414802] com uma rotina bem demorada e um ProcessMessages, tá tudo rodando direitinho, a aplication responde tudo ok, só q eu tenho uma scrollbox q quando clico pra rolá-la, enquando eu tiver precionando o mouse(MouseDown) o processo fica parado esperando eu soltá-lo(MouseUP)!
Alguém sabe como eu posso resolver isso??
Já tentei capturar as mensagens do windows e nada...
Com as msgs eu só consegui desabilitar a barra de rolagem, mas naum era isso q eu queria, seria bom se ele fizesse um sincronismo!
Qualquer ajuda será bem vinda!!
Grato,
Caninha51
Alguém sabe como eu posso resolver isso??
Já tentei capturar as mensagens do windows e nada...
Com as msgs eu só consegui desabilitar a barra de rolagem, mas naum era isso q eu queria, seria bom se ele fizesse um sincronismo!
Qualquer ajuda será bem vinda!!
Grato,
Caninha51
Caninha51
Curtidas 0
Respostas
Marconi
15/12/2003
Voce tem código nos eventos MouseDown ou MouseUp da Scroolbox ?
Se tiver, coloque uma variavel boolean pública para evitar que estes códigos sejam processados nestas ocasiões.
Exemplo
.......
Public
rolando:boolean;
....
...
...
no FormCreate coloque
rolando:=false;
....
Antes de começar o loop do FOR coloque
rolando := true;
...
na primeira linha dos códigos down ou up do Mouse coloque
if rolando then exit;
após o loop retorne o valor de rolando
rolando:=false;
Espero ter ajudado
Marconi
Se tiver, coloque uma variavel boolean pública para evitar que estes códigos sejam processados nestas ocasiões.
Exemplo
.......
Public
rolando:boolean;
....
...
...
no FormCreate coloque
rolando:=false;
....
Antes de começar o loop do FOR coloque
rolando := true;
...
na primeira linha dos códigos down ou up do Mouse coloque
if rolando then exit;
após o loop retorne o valor de rolando
rolando:=false;
Espero ter ajudado
Marconi
GOSTEI 0
Caninha51
15/12/2003
Fala Marconi!
Rapaz, pior q naum tem código nenhum.
Mas de qualquer maneira ele ´executa alguma rotina´ ao rolar a barra, néh?
Então, como posso fazer um sincronismo, como com threads??
De qualquer maneira valew pela ajuda!!
Caninha51
Rapaz, pior q naum tem código nenhum.
Mas de qualquer maneira ele ´executa alguma rotina´ ao rolar a barra, néh?
Então, como posso fazer um sincronismo, como com threads??
De qualquer maneira valew pela ajuda!!
Caninha51
GOSTEI 0
Beppe
15/12/2003
Para fazer o que quer, precisa reestruturar seu código. O que acontece é quando o usuário clica no barra(que é um controle filho e é embutido no controle, e tem seu próprio handle, então eventos de mouse não são gerados) do scrollbox(e qualquer descendente de TScrollingWinControl) e é movimentada, um loop com chamadas a Sleep entra em ação.
Então você troca o scrollbox por duas scrollbars separadas e cria alógica para rolar os controles ou coloca o seu código num thread(eu faria assim).
Então você troca o scrollbox por duas scrollbars separadas e cria alógica para rolar os controles ou coloca o seu código num thread(eu faria assim).
GOSTEI 0
Caninha51
15/12/2003
O programa faz o seguinte, vc informa a ele uma url e ele baixa todas as imagens de um site...
Ele faz 4 downloads por vez, q são 4 threads q fica baixando e mostrando o progresso do download...
Então o programa espera 1 dos 4 terminar e cria outro, e assim por diante.
Só q o código q cria os threads naum está dentro de outro thread... Eu até tentei criar um thread ´pai´ para criar os outros threads q iriam baixar as imagens, só q eu tive um problema. Ele funcionou perfeitamente só q quando acabaram as imagens a serem baixadas e o thread terminou, todos os componentes dinâmicos q eu criei(é q eu baixo as imagem e as exibo na hora) durante este processo simplesmente sumiram.
Vou analisar o lance das ScrollBars, mas aguardo mais sugestões!
Valeu Ataliba!
Caninha51
Ele faz 4 downloads por vez, q são 4 threads q fica baixando e mostrando o progresso do download...
Então o programa espera 1 dos 4 terminar e cria outro, e assim por diante.
Só q o código q cria os threads naum está dentro de outro thread... Eu até tentei criar um thread ´pai´ para criar os outros threads q iriam baixar as imagens, só q eu tive um problema. Ele funcionou perfeitamente só q quando acabaram as imagens a serem baixadas e o thread terminou, todos os componentes dinâmicos q eu criei(é q eu baixo as imagem e as exibo na hora) durante este processo simplesmente sumiram.
Vou analisar o lance das ScrollBars, mas aguardo mais sugestões!
Valeu Ataliba!
Caninha51
GOSTEI 0
Caninha51
15/12/2003
Eu tava dando uma olhadinha e vi q com a ScrollBar ocorre o mesmo problema, o processo para!
GOSTEI 0
Beppe
15/12/2003
Você está chamando free nos componentes quando a thread acaba?
GOSTEI 0
Caninha51
15/12/2003
Não, para criar-los eu crio dentro do thread, mas pra destruí-los não é (seria, já q naum deu certo.) no thread naum.
Valew,
Caninha51
Valew,
Caninha51
GOSTEI 0