QUOTE(Blackleaf @ 17/06/2008 - 12:37)

O que eu poderia fazer para parar esse "pisca-pisca" ?
a menos que você encontre um componente com esta funcionalidade, você pode criar seu próprio, derivando do TBitBtn e processando as mensagens (
message): CM_MOUSEENTER (ao entrar) e CM_MOUSELEAVE (ao deixar)
Deste modo, a imagem será trocada quando o mouse "entrar" ou "sair" da área retangular do botão. Neste novo componente você define um variável de controle e os métodos mais ou menos deste modo:
CODE
unit ....
uses ...
type
TBitBtnNovo = class(TBitBtn)
constructor Create(AOwner: TComponent); override;
...
private
FMouseSobre :Boolean;
procedure MouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure MouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
...
end;
implementation
constructor TBitBtnNovo.Create(AOwner: TComponent); override;
begin
inherited;
FMouseSobre := False;
end;
procedure TBitBtnNovo.MouseEnter(var Message: TMessage);
begin
if Not FMouseSobre then
begin
FMouseSobre := True;
Glyph.LoadFromFile('c:\imagem_mouse_sobre.bmp');
end;
end;
procedure TBitBtnNovo.MouseLeave(var Message: TMessage);
begin
if FMouseSobre then
begin
Glyph.LoadFromFile('c:\imagem_mouse_fora.bmp');
FMouseSobre := False;
end;
end;
se funcionar, você pode até tentar incrementar o componente, adicionando propriedades para definição das imagens referentes a cada uma das duas situações.
t+