Difference between revisions of "BGRAControls/pt"

From Free Pascal wiki
Jump to navigationJump to search
Line 84: Line 84:
  
 
Eu tentei reportar isto como um bug. Em vez disso, eu criei TBGRAPanel com uma funcionalidade de gradiente semelhante (mas muito limitada).
 
Eu tentei reportar isto como um bug. Em vez disso, eu criei TBGRAPanel com uma funcionalidade de gradiente semelhante (mas muito limitada).
 +
 +
== TBGRAPanel ==
 +
 +
Simples descendente de TPanel com possibilidade de fundo com gradiente. Criado especialmente para TBGRAButton (para criar uma barra de ferramentas com visual agradável para bgrabuttons). Este componente é insensível para a chave -dGTK_ONLY.

Revision as of 05:33, 6 June 2011

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:

before-TImageList.png

Depois:

after-TBGRAImageList.png

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).

TBGRASpeedButton

BGRASpeedButton.png

Componente herdado do TSpeedButton e que desenha o glifo usando TBGRABitmap. Este componente foi escrito para habilitar GTK alpha, por isto no Windows (e outras interfaces) ele funciona normalmente como TImageList (este não usa BGRABitmap para desenhar).

TBGRAButton

bgrabutton.png

Componente gráfico customizável que utiliza apenas funções BGRABitmap para o desenho. Este componente é insensível para a chave -dGTK_ONLY. Projeto Demo incluído no pacote.

Funcionalidades:

  • Gradientes
  • Gradients duplos
  • Arredondamento
  • Estilo das bordas, espessura e cor
  • Lista Drop down
  • Grifo
  • Estados (normal, sobre, clicado)
  • Legenda com sombra
  • Suporte total a canal alfa (transparência) e suporte antialias
  • Pode trabalhar como uma imagem se nenhuma legenda é definida (não tem nenhuma função de esticar até o momento)

À fazer:

Eu queria adicionar a funcionalidade de "container" (como o TPanel) para este mesmo componente poder ser usado como uma barra de ferramentas com filhos, mas TCustomControl não tem transparência.

Eu criei uma tarefa para esta questão no fórum: http://www.lazarus.freepascal.org/index.php/topic,12933.0.html

E uma lista de email: http://lists.lazarus.freepascal.org/pipermail/lazarus/2011-April/062683.html

Eu tentei reportar isto como um bug. Em vez disso, eu criei TBGRAPanel com uma funcionalidade de gradiente semelhante (mas muito limitada).

TBGRAPanel

Simples descendente de TPanel com possibilidade de fundo com gradiente. Criado especialmente para TBGRAButton (para criar uma barra de ferramentas com visual agradável para bgrabuttons). Este componente é insensível para a chave -dGTK_ONLY.