Ir para conteúdo
Fórum Script Brasil
  • 0

OnMouseMove


Blackleaf

Pergunta

Bom eu estava montando um programa aí para "incrementar" eu decidi botar um efeito OnMouseMove.

Aí eu sei que para botar esses efeitos assim eu preciso colocar num Bitbtn que já tem a sua propriedade para imagens nele.

Aí eu queria saber que comando eu posso usar para quando eu passar o mouse em cima do bitbtn ele mudar a imagem de dentro (estilo os navegadores feitos em delphi).

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
eu queria saber que comando eu posso usar para quando eu passar o mouse em cima do bitbtn ele mudar a imagem de dentro (estilo os navegadores feitos em delphi).

cc : integer = 0;
implementation

{$R *.DFM}

procedure TForm1.BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
   cc := cc + 1;
   If cc = 1 then
     begin
       BitBtn1.Glyph.LoadFromFile('c:\ignore.bmp');
       sleep(50);
       exit;
     end
   else
     begin
       BitBtn1.Glyph.LoadFromFile('c:\import.bmp');
       cc := 0;
       sleep(50);
     end;

isto vai te dar uma noção de como fazer animação

http://www.geocities.com/wallstreet/exchan...hi/delphi_1.htm

Link para o comentário
Compartilhar em outros sites

  • 0

Hey Jhonas!

Acho que a lógica do código está certa, mas eu não estou conseguindo um boa qualidade, fica piscando quando eu passo o mouse por cima do botão, já até tentei mudar para Gif, e diminuir o sleep (até mesmo tirar), mas ainda fica o tal "pisca-pisca" e ainda as vezes trava o botão e fica numa imagem só (questão de segundos).

O que eu poderia fazer para parar esse "pisca-pisca" ?

Link para o comentário
Compartilhar em outros sites

  • 0
Acho que a lógica do código está certa, mas eu não estou conseguindo um boa qualidade, fica piscando quando eu passo o mouse por cima do botão, já até tentei mudar para Gif, e diminuir o sleep (até mesmo tirar), mas ainda fica o tal "pisca-pisca" e ainda as vezes trava o botão e fica numa imagem só (questão de segundos).

O que eu poderia fazer para parar esse "pisca-pisca" ?

O evento MouseMove do botão vai provocar isto sempre, porque o ponteiro do mouse tem muitas coordenadas (X,Y) de controle.

O melhor não é usar evento MouseMove do botão mas sim o evento OnClick. ou seja qundo voce clicar uma vez fica com uma figura, quando clicar novamente troca a figura.

Procure no forum, já tem algo do tipo.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Morpheus --
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:

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+

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...