BGRAControls/pt
Resumo
Autores:
Dibo (mantenedor do pacote, TBGRAImageList, TBGRASpeedButton, TBGRAButton, TBGRAPanel)
Circular (TBGRAKnob, TBGRAFlashProgressBar, TBGRAVirtualScreen)
Emerson Cavalcanti (TBGRAImageManipulation)
Lainz (TBGRAImageButton)
Licença: Modified LGPL.
Como muitas pessoas sabem, Lazarus GTK não tem suporte completo a canal alfa. Eu criei um conjunto de componentes que utilizam TBGRABitmap para desenhar ícones, de modo que resolve-se parcialmente o problema com os alfa em GTK. Mas este conjunto de componentes não é apenas um patch do GTK, mas possue mais componentes legais que estão usando o poder do pacote BGRABitmap.
Artigos Relacionados
BGRAButton Gallery - Galeria de botões com código fonte para utilizar em seus projetos com BGRAButton.
Instalação
BGRABitmap: http://wiki.lazarus.freepascal.org/BGRABitmap
BGRAControls: http://sourceforge.net/projects/bgracontrols/files/
Git repository: git://bgracontrols.git.sourceforge.net/gitroot/bgracontrols/bgracontrols
Dica: Se você estiver usando o cliente TortoiseSVN para SVN você pode usar TortoiseGIT para GIT.
Você precisa do Lazarus 0.9.31 do SVN (revision >= 29834).
Você precisa instalar o pacote BGRABitmap primeiramente (é um pacote requerido em meu pacote).
Instale como os demais componentes, selecionando bgracontrols.lpk do "Pacote->Abrir arquivo do pacote". Este conjunto de componentes é multiplataforma (testada em GTK Linux e Windows)
Usando
Coloque um TBGRAImageList ou TBGRASpeedButton da paleta "BGRA Controls" e utilize como um componente normal. Exemplo: Adicionar ícones, coloqye TToolBar e associe BGRAImageList na barra de ferramentas. Imagens propriedade no inspetor de objetos.
TBGRAImageList
Antes:
Depois:
Componente herdado de TImageList. Assim, qualquer controle (testado em TToolBar e TTreeView) que utiliza o método TImageList. O método para desenhar ícones automaticamente pode ter apoio a alfa (transparência). Basta usar esse componente em vez de TImageList. Esse componente foi escrito para permitir alfa GTK, por isso no Windows (e em outras interfaces) ele funcionam normalmente como TImageList (ele não usa BGRABitmap para desenhar).