Fórum Manipular CM_MOUSEENTER #184637
27/09/2003
0
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!
:?:
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
Curtir tópico
+ 0
Responder
Posts
27/09/2003
Cebikyn
É 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;
Responder
Gostei + 0
02/12/2010
Paulo
É mais ou menos assim:
[code:1:1485813df0]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;[/code:1:1485813df0]
[code:1:1485813df0]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;[/code:1:1485813df0]
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....
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)