Ir para conteúdo
Faça parte da equipe! (2024) ×

Progressbar + Imagem


vodikatm
 Compartilhar

Posts Recomendados

Bom neste tutorial irei explicar um pouco como se fazer uma imagem simular o andamento de uma progressbar na linguagem Object Pascal Borland Delphi 7

Podemos simular essa Progressbar de 2 maneiras, 1 usando um Panel e outra usando apenas a imagem com eventos do idHTTP .

Método 1 com Panel:

Iremos usar:

1 ProgressBar [Win32]

1 Panel[standard]

1 Image[Additional]

Na propriedade align da image coloque alLeft e na propriedade Stretch coloque como true

Coloque a propriedade Visible da progressbar em False e coloque sua imagem em um lugar com espaço para fazer o progresso.

Image.Width:=Round((500/100)*x);

Podemos ver neste código que a propriedade Widht da imagem vai receber o valor 500 de pixel de largura caso você precise que sua progressbar seja maior basta alterar esse valor, o valor X representa um valor em porcentagem, ou seja se você quer que sua progressbar carregue em 100% basta colocar o valor 100.

Agora entendido um pouco do code você pode personalizar para receber o valor máximo da progressbar ou a posição atual dela, codes abaixo para explicação.

Image.Width:=Round((img_Panel.Width/100)*((0*100)/Progressbar.Position));
Aqui a imagem começará a contar do seu tamanho inicial e irá de 0 a 100% acompanhando a posição em tempo real da progressbar.

Image.Width:=Round((img_Panel.Width/100)*((0*100)/Progressbar.Max));
Neste é quase a mesma coisa, a diferência que irá simular o valor máximo da progressbar.

 

Método 2 eventos IdHTTP:

Iremos usar:

1 ProgressBar [Win32]

1 idHTTP [internet]

1 Image[Additional]

Coloque a propriedade Visible da progressbar em False e coloque sua imagem em um lugar com espaço para fazer o progresso.

Este método consiste em usar os eventos do idHTTP, sendo eles: OnWork, OnWorkBegin , OnWorkEnd

Image.Width:=Round((500/100)*((Progressbar1.position*100)/AworkCount));
Este code iremos usar no evento OnWork, onde o idHTTP irá dar inicio a conexão do arquivo a ser baixado.

Image.Width:=Round((500/100)*((Progressbar1.position*100)/AworkCountMax));
Este code iremos usar no evento OnWorkBegin, onde o idHTTP irá baixar o arquivo até a progressbar chegar na sua contagem máxima.

Image.Width:=Round((500/100)*((Progressbar1.position*100)/Progressbar1.Max));
Este code iremos usar no evento OnWorkEnd, que nada mais é para a imagem ficar com o valor máximo quando de acordo com a progressbar quando o evento termina o download do arquivo

 

Dica adicional:

Em cada evento você pode adicionar um code para alterar o caption de uma label para acompanhar em tempo real o progresso do download.

Exemplo no Evento OnWork:

Label.Caption := 'Atualizando ...';

Label1.Caption := 'Tamanho: ' + IntToStr(AWorkCount) + ' / ' + IntToStr(Idhttp.Response.ContentLength) + ' - ' + IntToStr(Trunc((AWorkCount/idHttp.Response.ContentLength)*100)) + '%';

Enfim esta foi uma breve explicação de como fazer uma imagem virar uma progressbar, tenho certeza que se vocês tiveram curiosidade de ler até aqui irão fazer a de vocês sem problemas.

 

Créditos:

VodikaTM

strak2012 [ Me ajudou muito nos codes para fazer esse sistema para meu launcher e me tirou dúvidas]

Caso vocês vejam erros ortográficos me mandem mensagem por PM.

6II50.png

Link para o comentário
Compartilhar em outros sites

  • 2 semanas atrás...

Meu caro, lhe informo que no fórum tem skin de BackGround escura (eu faço o uso), e não da pra ler nada no tópico quando as letras estão formatadas na cor preta...

Se você apenas adicionar o negrito e retirar as cores, o conteúdo dele vai ficar visível para qualquer skin.

Meus brinquedos em WinAPI:

Calculador

MemoryScanner

Faça parte também da DarkProgramming Team!

Link para o comentário
Compartilhar em outros sites

Meu caro, lhe informo que no fórum tem skin de BackGround escura (eu faço o uso), e não da pra ler nada no tópico quando as letras estão formatadas na cor preta...

Se você apenas adicionar o negrito e retirar as cores, o conteúdo dele vai ficar visível para qualquer skin.

Obrigado pela dica, quando eu estiver de tempo irei formatar o tópico novamente.

6II50.png

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.