Manipular CM_MOUSEENTER

Delphi

27/09/2003

Gostaria de saber como faço para manipular mensagens do Windows com outros tipos de controles (TControl).

Por exemplo, eu sei que para saber se movi uma janela em tempo de execução, crio uma procedure na seção private assim:

procedure WMJanelaMoveu(var Msg: TMessage);message WM_MOVE;

Até aí beleza, mas por exemplo, quero saber se o cursor do mouse passou sobre o botão com a mensagem CM_MOUSEENTER em tempo de execução também.

Só sei fazer qdo. crio um outro componente TButton, que já herda direto da classe TButton.

Obrigado pela atenção!
:?:


Marcioih

Marcioih

Curtidas 0

Respostas

Cebikyn

Cebikyn

27/09/2003

É mais ou menos assim:

type
  TForm1 = class(TForm)
    ...
  private
    { Private declarations }
    procedure WndProc(var Message : TMessage); override;
  public
    { Public declarations }
  end;

...

procedure TForm1.WndProc(var Message : TMessage);
begin
  if Message.LParam = Longint(nome_do_componente) then
  begin
    if (Message.Msg = CM_MOUSELEAVE) then
      // Código para CM_MOUSELEAVE
    if (Message.Msg = CM_MOUSEENTER) then
      // Código para CM_MOUSEENTER
  end;
  inherited WndProc(Message);
end;



GOSTEI 0
Paulo

Paulo

27/09/2003


É mais ou menos assim:

type
  TForm1 = class(TForm)
    ...
  private
    { Private declarations }
    procedure WndProc(var Message : TMessage); override;
  public
    { Public declarations }
  end;

...

procedure TForm1.WndProc(var Message : TMessage);
begin
  if Message.LParam = Longint(nome_do_componente) then
  begin
    if (Message.Msg = CM_MOUSELEAVE) then
      // Código para CM_MOUSELEAVE
    if (Message.Msg = CM_MOUSEENTER) then
      // Código para CM_MOUSEENTER
  end;
  inherited WndProc(Message);
end;



 

Caro amigo, este post vai me ajudar a resolver um grande problema, porem não estou sabendo como usa-lo, ou seja, como e quando vou acionar o WndProc...
Obrigado....
GOSTEI 0
POSTAR