Código
Você já deve ter notado que os controles do Delphi, por padrão, não executam o comando "scroll" dado pelo botão wheel (roda) do mouse. Para que eles executem tal função, devemos detectar quando este botão é 'pressionado', e então, executar o scroll. Seguindo os passos abaixo, veremos como:
1- Declare na seçao private do form principal, o seguinte procedimento:
*)
...
type
TForm1 = class(TForm)
private
{ Private declarations }
procedure OnMessageOwn(var Msg: TMsg; var Handled: Boolean);
public
{ Public declarations }
end;
...
(*
2 - Implemente-o como abaixo:
*)
procedure TForm1.OnMessageOwn(var Msg: TMsg; var Handled: Boolean) ;
var i: SmallInt;
begin
if Msg.message = WM_MOUSEWHEEL then
begin
Msg.message := WM_KEYDOWN;
Msg.lParam := 0;
i := HiWord(Msg.wParam) ;
if i > 0 then
Msg.wParam := VK_UP
else
Msg.wParam := VK_DOWN;
Handled := False;
end;
end;
(*
3- No evento onCreate do Form, basta ativar o procedimento:
*)
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := OnMessageOwn;
end;
(*
Com isso o "scroll" do mouse funcionará em toda a aplicação, ativando todos os controles que tiverem barra de rolagem
*)
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009