Efeito visual ao passar o mouse

Delphi

21/09/2003

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

Flanilson

Curtidas 0

Respostas

Barcelos

Barcelos

21/09/2003

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


GOSTEI 0
Fava

Fava

21/09/2003

Se não me engano o SpeedButtom já possui esta funcionalidade.


GOSTEI 0
POSTAR