Page 1 of 1

Scroll sobre un folderpage

Posted: Fri Oct 20, 2017 5:32 am
by Carlos Ortiz
Resulta que en un form tengo un folder con un folderpage vacío, este folderpage se llena en tiempo de ejecución con una serie de controles en un orden que el usuario configura en una tabla, si el primer control donde se posiciona el cursor es un edit o un check o un radio al hacer scroll con el mouse el folder hacer scroll sin problemas mostrando los controles para abajo y para arriba pero si cae en un combo o un memoedit no hace scroll se queda en ese control y no sube ni baja, esto es asi o se puede alterar para que esos 2 controles se comporten como los otros con respecto al scroll del mouse

Probé varias cosas y no estoy pudiendo hacerlo, sera que tengo que tocar la clase tCombobox?

Gracias

Re: Scroll sobre un folderpage

Posted: Sat Oct 21, 2017 8:13 pm
by jfgimenez
Carlos,

Normalmente, el scroll con la rueda del ratón actúa sobre el control que tiene el foco. En Win10 se cambió ese comportamiento, y ahora por defecto actúa sobre el control que esté justo debajo del puntero del ratón. No obstante, ese comportamiento se puede cambiar desde el panel de control de windows.

En cualquier caso, los mensajes de scroll los recibe un control determinado, y si ese control no los procesa, los reenvía a su control contenedor. Por esa razón, si quien recibe esos mensajes es un TEdit o un TCheckbox, se reenvían al contenedor, en este caso el folder, y se hace scroll en la página que tengas activa. Pero en el caso de TMemo y TCombobox, son esos mismos controles los que procesan los mensajes de scroll, y no se reenvían al contenedor, lo cual es completamente lógico. Por lo tanto, me temo que no hay nada que hacer.

Re: Scroll sobre un folderpage

Posted: Sat Oct 21, 2017 8:46 pm
by Carlos Ortiz
y como podría hacer para que esos 2 controles se comporten como los tEdit (con lExtendedui al combobox le cancele el scroll al hacer girar el scroll del mouse) pero no se como hacer lo otro, gracias josé!

Re: Scroll sobre un folderpage

Posted: Sat Oct 21, 2017 9:04 pm
by jfgimenez
Carlos,

prueba a sobrecargar la clase, y añadir el método:

Code: Select all

METHOD WMMouseWheel( nWParam, nLParam ) INLINE ::oParent:WMMouseWheel( nWParam, nLParam ), 0

Aunque no lo he probado y no sé si funcionará.

Re: Scroll sobre un folderpage

Posted: Sun Oct 22, 2017 1:07 am
by Carlos Ortiz
Funciona y hace lo que quiero, ahora por mas que el cursor se detenga en cualquier control si hay barras de scroll hace scroll en el contenedor! Gracias José una vez mas te debo una cerveza!

Re: Scroll sobre un folderpage

Posted: Mon Oct 23, 2017 12:16 pm
by bingen
Ojo si el ComboBox esta dentrp de un GroupBox encima del folderpaga falla a no ser que también sobrecargues


CLASS tGroupBox FROM xGroupBox
METHOD WMMouseWheel( nWParam, nLParam ) INLINE ::oParent:WMMouseWheel( nWParam, nLParam )
ENDCLASS

Salu2

Re: Scroll sobre un folderpage

Posted: Mon Oct 23, 2017 7:17 pm
by Carlos Ortiz
Ok, gracias por la aclaración!