Fórum Efeito visual ao passar o mouse #183427
21/09/2003
0
Como posso colocar um efeito num SpeedButton quando passar o mouse por cima? Tipo assim: quando passar o mouse em cima do botão, mesmo ele tendo um desenho (de um disquete, por exemplo) ele muda de cor (um azul translúcido, por exemplo). Mais ou menos como acontece no Office XP.
Flanilson
Curtir tópico
+ 0
Responder
Posts
22/09/2003
Barcelos
Caro amigo,
Você terá que interceptar as mensagens cm_mouseenter e cm_mouseleave para ter estes efeitos.
Vai aí um componente de exemplo (ele somente muda a fonte do botão, mas você pode alterar qualquer coisa).
unit SpeedActive;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons;
type
TSpeedActive = class(TSpeedButton)
private
{ Private declarations }
protected
{ Protected declarations }
public
procedure MouseEnter(var Msg : TMessage);
Message cm_mouseEnter;
Procedure MouseLeave (Var MSG: TMessage);
Message cm_mouseLeave;
{ Public declarations }
published
end;
procedure Register;
implementation
Procedure TActiveButton.MouseEnter (var MSG : TMessage);
begin
Font.Color := clBlue;
Font.Style := Font.Style + [fsBold];
end;
Procedure TActiveButton.MouseLeave (var MSG : TMessage);
begin
Font.Color := clBlack;
Font.Style := Font.Style - [fsBold];
end;
procedure Register;
begin
RegisterComponents(´Additional´, [TSpeedActive]);
end;
end.
Espero ter ajudado
Barcelos
osbarcelos@hotmail.com
Você terá que interceptar as mensagens cm_mouseenter e cm_mouseleave para ter estes efeitos.
Vai aí um componente de exemplo (ele somente muda a fonte do botão, mas você pode alterar qualquer coisa).
unit SpeedActive;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons;
type
TSpeedActive = class(TSpeedButton)
private
{ Private declarations }
protected
{ Protected declarations }
public
procedure MouseEnter(var Msg : TMessage);
Message cm_mouseEnter;
Procedure MouseLeave (Var MSG: TMessage);
Message cm_mouseLeave;
{ Public declarations }
published
end;
procedure Register;
implementation
Procedure TActiveButton.MouseEnter (var MSG : TMessage);
begin
Font.Color := clBlue;
Font.Style := Font.Style + [fsBold];
end;
Procedure TActiveButton.MouseLeave (var MSG : TMessage);
begin
Font.Color := clBlack;
Font.Style := Font.Style - [fsBold];
end;
procedure Register;
begin
RegisterComponents(´Additional´, [TSpeedActive]);
end;
end.
Espero ter ajudado
Barcelos
osbarcelos@hotmail.com
Responder
Gostei + 0
22/09/2003
Fava
Se não me engano o SpeedButtom já possui esta funcionalidade.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)