CTRL Scroll
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.
Fico no aguardo.
Abraços
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
Curtidas 0
Respostas
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.
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
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
05/01/2006
Vlw de novo Michel....
Ficou assim o meu codigo:
Ae, onde posso descobrir + sobre mensagens???
Daí naum preciso ficar quebrando a cabeça com testes nem perturbando no fórum....
Abraços
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