CTRL Scroll

Delphi

05/01/2006

Galera, alguem sabe como posso fazer para qdo pressionar o [b:568e8f9790]control + roda do mouse[/b:568e8f9790] fazer a rolagem do richedit rodar para direita/esquerda???

Fiz assim e naum funcionou.
  if ssCtrl in Shift then
    begin
      if WheelDelta > 0 then
        SendMessage(RchEdt.Handle,WM_VSCROLL,SB_PAGERIGHT,5)
      else if WheelDelta < 0 then
        SendMessage(RchEdt.Handle,WM_VSCROLL,SB_PAGELEFT,5);
      Handled := True;
    end;


Fico no aguardo.
Abraços


Aloizio Castro

Aloizio Castro

Curtidas 0

Respostas

Michael

Michael

05/01/2006

Vc deve usar a constante [b:af3ef2df8f]WM_HSCROLL[/b:af3ef2df8f] ao invés de [b:af3ef2df8f]WM_VSCROLL[/b:af3ef2df8f], afinal o rolamento deve ser horizontal, e não na vertical.

Outra coisa: sua lógica não está correta, pois o RichEdit deve rolar para a direita quando a roda do mouse correr para baixo, isto é, quando [b:af3ef2df8f]WheelDelta[/b:af3ef2df8f] for negativo. Basta inverter o código dos [b:af3ef2df8f]if´s[/b:af3ef2df8f].

Por fim, o terceiro parâmetro da função [b:af3ef2df8f]SendMessage [/b:af3ef2df8f]pode ser 0, ou qualquer outro valor. Ele não tem função neste contexto.

if ssCtrl in Shift then
begin
  if WheelDelta > 0 then
    SendMessage(RchEdt.Handle, WM_VSCROLL, SB_PAGERIGHT, 0)
  else if WheelDelta < 0 then
    SendMessage(RchEdt.Handle, WM_VSCROLL, SB_PAGELEFT, 0);
  Handled := True;
end;


Existem ainda as constantes [b:af3ef2df8f]SB_LINERIGHT[/b:af3ef2df8f] e [b:af3ef2df8f]SB_LINELEFT[/b:af3ef2df8f], caso vc queira rolar caractere a caractere.

[]´s


GOSTEI 0
Aloizio Castro

Aloizio Castro

05/01/2006

Vlw de novo Michel....
Ficou assim o meu codigo:
  if ssCtrl in Shift then
    begin
      if WheelDelta < 0 then
        SendMessage(RchEdt.Handle, WM_HSCROLL, SB_LINERIGHT, 10)
      else if WheelDelta > 0 then
        SendMessage(RchEdt.Handle, WM_HSCROLL, SB_LINELEFT, 10);
      Handled := True;
    end;


Ae, onde posso descobrir + sobre mensagens???
Daí naum preciso ficar quebrando a cabeça com testes nem perturbando no fórum....

Abraços


GOSTEI 0
POSTAR