GARANTIR DESCONTO

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

Flanilson

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


Responder

Gostei + 0

22/09/2003

Fava

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar