Como saber se a barra de rolagem do ScrollBox foi clicada?
Preciso saber se a barra de rolagem do ScrollBox foi clicada. Preciso disso para o Delphi 3. No Delphi 7 eu tenho o evento OnConstrainedResize que permite resolve o problema mas no delphi 3 ele não está disponível. Eu só preciso saber se o usuário clicou ou não na barra de rolagem. Não é necessário identificar se foi para cima ou para baixo ou se foi a horizontal ou a vertical. Tentei processar as mensagens WM_HSCROLL e WM_VSCROLL mas não tá rolando. Aguem sabe como fazer?
Tatuweb
Curtidas 0
Respostas
Beppe
19/09/2004
Nunca precisei disso...mas como as barras de rolagem fazem parte da área não-cliente, tente a mensagem WM_NCMOUSEDOWN, etc...
Boa sorte!
Boa sorte!
GOSTEI 0
Tatuweb
19/09/2004
Beppe,
o Delphi não reconheceu a mensagem WM_NCMOUSEDOWN mas o que vc disse ajudou bastante. Eu usei a mensagem WM_NCLBUTTONDOWN que resolveu o problema. O único incoveniente é que ela captura também os cliques em cima do menu e da barra de título mas para o que estou fazendo não chega a ser um problema. Valeu pela ajuda!
o Delphi não reconheceu a mensagem WM_NCMOUSEDOWN mas o que vc disse ajudou bastante. Eu usei a mensagem WM_NCLBUTTONDOWN que resolveu o problema. O único incoveniente é que ela captura também os cliques em cima do menu e da barra de título mas para o que estou fazendo não chega a ser um problema. Valeu pela ajuda!
GOSTEI 0
Beppe
19/09/2004
o Delphi não reconheceu a mensagem WM_NCMOUSEDOWN mas o que vc disse ajudou bastante. Eu usei a mensagem WM_NCLBUTTONDOWN que resolveu o problema. O único incoveniente é que ela captura também os cliques em cima do menu e da barra de título mas para o que estou fazendo não chega a ser um problema. Valeu pela ajuda!
É verdade, a mensagem WM_NCMOUSEDOWN não existe, tenho a mania de confundir os eventos da VCL com mensagens do Win32, mas era só o caso de tentar outras mensagens.
Sobre a captura de outros cliques tu pode verificar a posição do mouse.
Se quiser tentar, tenho quase certeza de que cada barra de rolagem recebe um handle, e é uma janela-filha do teu controle. Então pode instalar uma nova WindowProc para ela, que receberá então WM_LBUTTONDOWN.
T+
GOSTEI 0