Infelizmente tive que fazer uma gambiarra, se o botão tem um texto ou 
uma imagem ela é sobrescrita pelo gradiente. A solução que tive foi usar 
da seguinte forma:

    BitBlt(JvXPButton1.Canvas.Handle,
           1,1,JvXPButton1.Width -2,
           JvXPButton1.Height -2,
           FCkGradient.Canvas.Handle,
           0,0, SRCERASE + NOTSRCCOPY);

Usei no último parâmetro a combinação (SRCERASE + NOTSRCCOPY). Usei 
várias outras mas só estas deram certo. O botão fica um preto quase 
transparente, mas a imagem permanece, depois, na sequência, usei:

JvXPButton1.IsLocked := True;
JvXPButton1.Enabled := False;

Então o botão fica desabilitado guardando a "formatação".
Não encontrei outra solução, uma pena.

Mas fica aqui se alguém algum dia precisar... Se tivesse alguém que 
usasse esse botão seria mais fácil encontrar outra solução. bom... até 
mais...


EmbarcaDelphi escreveu:
>  
>
> Pessoal, precisa mais não, isso só acontece comigo (rsrs)
> Depois de postar o arquivo e a mensagem, fui ver o código novamente e vi
> que tava errado uma bendita de um parâmetro.
>
> A linha:
> BitBlt(JvXPButton1.Canvas.Handle,1,1,JvXPButton1.Width
> -2,JvXPButton1.Height -2,FCkGradient.Canvas.Handle,0,0, SRCAND);
>
> O último parâmetro estava errado, o certo é:
> BitBlt(JvXPButton1.Canvas.Handle,1,1,JvXPButton1.Width
> -2,JvXPButton1.Height -2,FCkGradient.Canvas.Handle,0,0, SRCCOPY);
>
> Tanto que procurei no google e não achei nada disso, ainda bem que
> estudando o código do Jedi eu consegui...
>
> Para usar o botão é fácil, mas para determinar algumas coisas via código
> a facilidade não existe, tem que meter a cara no código mesmo!!! Não
> existe documentário sobre isso. Acho que deixei uma mão na roda para
> outra pessoa que necessitar disso...
>
> blz... vou adiante no projeto depois de 3 dias nisso.
>
> :)
>
>
> 

Responder a