Olá!
Estou tentando migrar um sistema meu para Lazarus e para começar eu preciso portar uns componentes que fiz. Porém, estou tendo problema com um botão que fiz, chamado clButton.
Basicamente, ele é um botão herdado de TCustomControl que é desenhado do zero. Ele pode ter um caption e até 2 ícones. O fundo dele pode ser uma cor sólida ou uma imagem. Ao migrá-lo para Lazarus ele está funcionando 99%. O problema que está ocorrendo é que o ícone e o caption não aparecem em tempo execução até o momento que eu passo o mouse sobre ele. Além disso, em tempo de design não aparece de jeito nenhum. Em ambos os casos apenas o fundo está sendo desenhado. OBS: o mesmo componente, com o mesmo código funciona 100% no Delphi.
Alguém poderia me ajudar a encontrar a falha?
Para testar faça o seguinte:
1 - instale o componente
2 - Ponha um "clButton" no form
3 - Digite um caption para ele
4 - Ponha um "ImageList" e adicione imagens a ele.
5 - No "clButton", clique na propriedade "Icone", depois em "ImageList" e ligue ao ImageList que você colocou no form.
5.1 - Clique também na propriedade "IconeIndex" e defina o número referente à imagem do ImageList que deverá aparecer no clButton
5.2 - Clique tmabém na propriedade "Position" e mude para poCenter
OBS: no arquivo rar eu coloquei junto um componente clStyle que serve para mudar as cores de vários componentes clButton ao mesmo tempo. Seu uso é opcional.
Execute o programa. Você verá que apenas o fundo do botão está desenhado. Não aparece nem o ícone nem o caption. Porém, ao passar o mouse sobre o botão o ícone e o caption irão aparecer e depois disso o botão funcionará normalmente.
Aproveito pra informar que quem quiser pode usar o componente livremente e até criar versões de componentes a partir dele, apenas citando que o componente pertence a Clayton Oliveira Cavalcante Neves. Eu não coloquei nenhuma licença de distribuição nele porque não entendo disso. Quem quiser colocar uma apropriada pra mim ao me devolver o código corrigido eu agradeço.
Grato desde já.