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. Em seguida, escolha a guia Into new package . No campo Unit file name localize o arquivo pngextra.pas.

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.

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.