DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

PNG no Delphi Win32

Veja nesse artigo de Paulo Quicoli, como trabalhar com arquivos PNG no Delphi.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

 

Procurando melhorar o visual das minhas aplicações, comecei a procurar pela internet pelos belos ícones e imagens do Windows Vista. Encontrei vários pacotes de imagens, a maioria deles continha arquivos PNG.

Como não queria convertê-los para JPG e causar uma possível perda de qualidade e também perda do efeito de transparência, procurei por algum componente que permitisse utilizar arquivos PNG diretamente no Delphi. Encontrei então o PNG Delphi, um componente feito pelo brasileiro Gustavo Daud, e que pode ser baixado em http://pngdelphi.sourceforge.net.

O padrão PNG veio para substituir o Gif, apresentando o recurso de transparência parcial de imagens, e com o PNG Delphi, conseguimos isso.

Instalando

Infelizmente o componente não vem com um pacote pronto para instalação, e devemos então criar esse pacote. Entre no menu Component -> Install Component. Na janela que surgir, Figura 1, escolha a guia Into new package . No campo Unit file name localize o arquivo pngextra.pas.

 

 

Figura 1. Instalando o PNGDelphi

 

No campo Package file name, clique no botão Browse e localize a pasta do componente e dê um nome para o novo pacote, por exemplo PNGDelphi.dpk e confirme, em Package description coloque uma descrição para o pacote, como “Imagens PNG no Delphi”. Com tudo isso, confirme e na guia Samples será acrescentado o componente PNGButton.

Exemplo

Inicie um novo projeto e na janela principal adicione um PNGButton. O PGNButton é  muito versátil, pois pode atuar como um botão comum quando sua propriedade ButtonStyle é ajustada para pbsDefault, como um botão flat se estiver ajustado para  pbsFlat e até mesmo como painel quando o ButtonStyle for pbsNoFrame.

Outras três propriedades interessantes são, ImageNormal, ImageDown, ImageOver que são utilizadas para mostrar o estado do botão.

ImageNormal – É a imagem principal do botão. Quando o estado do mesmo for setado para enabled = false, o componente cria uma imagem transparente, para indicar o estado desabilitado.

ImageDown – Será exibida quando o usuário clicar sobre o botão, ou seja, quando o mesmo estiver pressionado

ImageOver – É a imagem que indica que o mouse está sobre ele.

 

Caso ImageDown e ImageOver não estejam configurados, a imagem contida em ImageNormal será utilizada. Escolha então para cada propriedade acima mencionada um arquivo PNG e execute a aplicação.

Além do componente PngButton, são oferecidas outras classes que permitem fazer a manipulação de arquivos PNG, como conversão de Jpg para Png, BMP para PNG e vice-versa. Também pode-se criar arquivos semi-transparentes, manipular o tamanho das imagens entre outras rotinas, todas explicadas em um ótimo help contido no arquivo de download.

Conclusão

Como sempre os desenvolvedores Delphi sempre conseguem o que querem. Se sai um novo tipo de arquivo, vamos lá e criamos uma maneira de poder ser utilizado no Delphi, este componente é um exemplo disso.


Paulo Quicoli
Editor Geral da revista ClubeDelphi. Formado em processamento de dados pela FATEC-TQ. Atua como Analista de Sistemas na Siplan Control-M unidade Jaboticabal (www.siplancontrolm.com.br), prof. na FATEC-TQ e consultor na NHibernate Brasil (www.nhibernatebrasil.net) Blog:http://quicoli.wordpress.com
O que você achou deste post?

    15 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Roger
O meu delphi da erro na compilação pede por um pacote chamado ZLIB, o que devo fazer
[há +1 ano] - Responder

 

Paulo Quicoli
Na hora de dar o nome para o novo pacote, vc deve salvá-lo na pasta dos fontes do componente. Então vc vai clicar no OK e o delphi lhe informará que será criada uma BPL e a mesma será instalada. Você apenas confirma a informação. Não precisa nem colocar o caminho no Library Path porque o delphi se encarregou disso ao instalar a nova bpl.
[há +1 ano] - Responder
 

Kelly
Funcionou perfeitinhu valeu, tava atras dessa dica ha um tempao!!!!!
[há +1 ano] - Responder

 

Ivens
Infelizmente não acho link para download desse PNG, e os que eu acho estão todos quebrados!
[há +1 ano] - Responder

 

Ivens
http://www.4shared.com/file/52828414/c4dd395e/pngdelphi.html?dirPwdVerified=3bb11d7a
[há +1 ano] - Responder
 

Cristyan
Ele não tem o propriedade TabOrder?
[há +1 ano] - Responder

 

[autor] Paulo Roberto Quicoli

Não porque ele não atua como um botão normal... quando está marcado como tipo botão, ele funciona como um "speedbutton"...

 
abraço
[há +1 ano] - Responder
 

Fabiano Góes

Boa Tarde Paulo,

você já testou a instalação no Delphi 2009?
estou tentando instalar mais não estou conseguindo:
Erro:
[DCC Error] pngimage.pas(2769): E2064 Left side cannot be assigned to
 
na linha:
Byte(Dest^) := fOwner.GammaTable[pByte(Longint(Src) + 2)^]; inc(Dest);
 
você poderia me ajudar?
 
[há +1 ano] - Responder

 

Robson Suzin
Boa Noite,
 
Você conseguiu instalar no D2009 me adicione no msn: robsonsuzin@hotmail.com
[há +1 ano] - Responder
 

[autor] Paulo Quicoli
Aparentemente esse componente foi descontinuado. Contudo, fizeram uma versão dele mais atual e está disponível no próprio site da Embarcadero, contudo eu não testei.

Segue o link:  http://cc.embarcadero.com/item/26127
[há +1 ano] - Responder
 

Fabio De Oliveira Silva
Boa noite Paulo Quicoli, não consigo baixar o componente na página e nem
conseguir achar em lugar nenhum, o mesmo, tem como você me mandar esse
componente pelo e-mail? fabionetsilva@gmail.com Desde já agradeço muito... Ótimo artigo.
[há +1 ano] - Responder

 

Giovani Erucci
tem como você me mandar tbm o componente pelo e-mail? desenvolvimento1@prosistemas.com.br !
Muito obrigado! Ótimo artigo.
[há +1 ano] - Responder

 

[autor] Paulo Quicoli
acabei de enviar. feito
[há +1 ano] - Responder
 

Wilson Fernandes
Boa Tarde, tambem não consegui baixar, voce poderia me enviar tambem, wilson@tibrasilsp.com.br
Obrigado
[há +1 mês] - Responder
 

[autor] Paulo Quicoli
vc quer usar para o delphi 7? é isso mesmo?
[há +1 mês] - Responder
 
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03