FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Horizontal scroll en un listbox
Posts: 18
Joined: Wed Nov 04, 2009 09:41 AM
Horizontal scroll en un listbox
Posted: Tue Dec 29, 2009 11:40 AM

Hola a todos,

Me gustar铆a tener un scroll horizontal en un listbox que tiene bastantes campos. He intentado checkear la opci贸n Horizontal Scroll desde la edici贸n del fichero de recursos. Parece que no hace ning煤n efecto y no me aparece el scroll horizontal. Se deber铆a hacer desde c贸digo?. No se puede hacer desde el fichero de recursos?. En este caso, como se incluiria esta barra desde codigo?. El scroll vertical s铆 me aparece.

El listbox lo redefino de esta forma:

REDEFINE LISTBOX ::oListBox FIELDS (::oDbfCli:cAlias)->cCodCli, (::oDbfCli:cAlias)->cNomCli, (::oDbfCli:cAlias)->cNomCom , (::oDbfCli:cAlias)->cDirCli, (::oDbfCli:cAlias)->cPobCli, (::oDbfCli:cAlias)->cCodProv, (::oDbfCli:cAlias)->cPTLCli, (::oDbfCli:cAlias)->cFaxCli, (::oDbfCli:cAlias)->cDniCif, (::oDbfCli:cAlias)->cContacto ;
ALIAS ::oDbfCli:cAlias ;
ID 121 OF ::oDlg ;
HEADER "C贸digo", "Nombre", "NombreComunidad", "Direcci贸n", "Poblaci贸n", "C贸digoProvincia", "PTLCli", "FaxCli", "DniCif", "Contacto" ;
FIELDSIZES 50, 210, 190, 220, 100, 100, 50, 120, 75, 75 ;
ON CHANGE ::Cambio() ;
ON DBLCLICK ::DobleClick() ;
COLOR CLR_BLACK, CLR_BLACK

::oListBox:nClrPane:={||iIF((::oListBox:cAlias)->(OrdKeyNo())%2==0,nRGB(242,250,252),nRGB(226,226,208))}

Saludos y gracias de antemano.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Horizontal scroll en un listbox
Posted: Tue Dec 29, 2009 06:45 PM

Diego,

Comprueba que tengas el estilo WS_HSCROLL en el recurso y que est茅 definido el control en el recurso como "TWBrowse" (贸 "TXBrowse", etc. seg煤n sea el browse que usas).

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 18
Joined: Wed Nov 04, 2009 09:41 AM
Re: Horizontal scroll en un listbox
Posted: Wed Dec 30, 2009 10:16 AM

Antonio,

Ya he conseguido poner el horizontal scroll. El estilo WS_HSCROLL ya lo tenia puesto en el estilo. Me faltaba definir el control en el recurso como "TWBrowse" ya que lo tenia como "LISTBOX".
Una pregunta aunque tal vez un poco ingenua (...de principiante):

Qu茅 si el control en el recurso est谩 definido como ListBox no se puede conseguir el horizontal scroll bar?. Si es as铆, por qu茅 esta carencia en este control?.

Saludos y gracias por la ayuda.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Horizontal scroll en un listbox
Posted: Wed Dec 30, 2009 11:29 AM

Diego,

Un control ListBox standard de Windows no admite scroll horizontal. Windows no prevee que se desplace lateralmente (salvo que sea un listbox "partido" en varias columnas).

pero lo m谩s importante, es que la clase de control especificada en el recurso (fichero RC) debe corresponder con la clase de control que usamos desde el PRG :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 18
Joined: Wed Nov 04, 2009 09:41 AM
Re: Horizontal scroll en un listbox
Posted: Wed Dec 30, 2009 11:38 AM

"pero lo m谩s importante, es que la clase de control especificada en el recurso (fichero RC) debe corresponder con la clase de control que usamos desde el PRG"...

Antonio,

Y si por ejemplo la clase de control especificada en el recurso (fichero RC) es TwBrowse y la clase de control que usamos desde el PRG es ListBox, seria algo sin sentido?. "Manda" lo que se ponga en el (fichero RC)?.
Si pongo la clase de control especificada en el recurso (fichero RC) como TwBrowse y la clase de control que usamos desde el PRG como ListBox, si que se muestra la barra horizontal...

Disculpa si son cuestiones absurdas... :D

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Horizontal scroll en un listbox
Posted: Wed Dec 30, 2009 04:00 PM

Diego,

El nombre especificado en el recurso le indica a Windows la clase de control a crear, pero la clase que usemos en el PRG le asocia la "funcionalidad", adem谩s teniendo presente que existen clases de controles predefinidas de Windows (como ListBox) y que tambien existen nuevas clases creadas por FWH (como TWBrowse).

Es por esto que se puede usar (por error) un ListBox en el recurso, pues Windows puede crearlo, y un TWBrowse en el PRG que le "intenta" dar la funcionalidad del browse.

Lo correcto: ambos deben ser de la misma clase :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 18
Joined: Wed Nov 04, 2009 09:41 AM
Re: Horizontal scroll en un listbox
Posted: Wed Dec 30, 2009 04:47 PM

Gracias Antonio. Eso har茅, poner los dos (fichero RC) y prg con el mismo control.

En el fichero RC estoy utilizando un TWBrowse. Y en el PRG tengo redefinido un ListBox (...por lo que aunque aparentemente est谩 bien, no es correcto como bien has dicho t煤).

Por lo que mi intenci贸n en cambiar el redefine listbox...bla,bla,bla...por su TWBrowse correspondiente.

Si para redefinir el ListBox hago lo sguiente:

REDEFINE LISTBOX ::oListBox FIELDS (::oDbfCli:cAlias)->cCodCli, (::oDbfCli:cAlias)->cNomCli, (::oDbfCli:cAlias)->cNomCom , (::oDbfCli:cAlias)->cDirCli, (::oDbfCli:cAlias)->cPobCli, (::oDbfCli:cAlias)->cCodProv, (::oDbfCli:cAlias)->cPTLCli, (::oDbfCli:cAlias)->cFaxCli, (::oDbfCli:cAlias)->cDniCif, (::oDbfCli:cAlias)->cContacto ;
ALIAS ::oDbfCli:cAlias ;
ID 121 OF ::oDlg ;
HEADER "C贸digo", "Nombre", "NombreComunidad", "Direcci贸n", "Poblaci贸n", "C贸digoProvincia", "PTLCli", "FaxCli", "DniCif", "Contacto" ;
FIELDSIZES 50, 210, 190, 220, 100, 100, 50, 120, 75, 75 ;
ON CHANGE ::Cambio() ;
ON DBLCLICK ::DobleClick() ;
COLOR CLR_BLACK, CLR_BLACK

::oListBox:nClrPane:={||iIF((::oListBox:cAlias)->(OrdKeyNo())%2==0,nRGB(242,250,252),nRGB(226,226,208))}

Esto 煤ltimo para el efecto pijama...

Me podr铆as dar alguna idea de como ser铆a la redefinici贸n semejante con el TWBrowse?.

He estado mirando un poco, y lo hago (intento hacer) de esta manera:

REDEFINE TWBROWSE oBrw ALIAS "::oDbfCli:cAlias" ID 121 OF oDlg

ADD COLUMN TO oBrw;
HEADER "C贸digo" ;
SIZE 50 PIXELS;

ADD COLUMN TO oBrw;
HEADER "Nombre" ;
SIZE 210 PIXELS;

ADD COLUMN TO oBrw;
HEADER "NombreComunidad" ;
SIZE 190 PIXELS;

etc,etc,etc...con los otros campos que quedan...

Como te he comentado el fichero(RC) ya est谩 correcto. He puesto el control TWBrowse que lo he cambiado por el ListBox que habia antes. Me queda adaptar el TWBrowse en el PRG.
Hay que a帽adir alg煤n include especial, a帽adir alguna clase....?. Con el redefine del TWBrowse voy bien encaminado...?

Saludos y gracias.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Horizontal scroll en un listbox
Posted: Wed Dec 30, 2009 04:55 PM

Diego,

Lo estas haciendo bien :-)

Es que REDEFINE LISTBOX ::oListBox FIELDS ... en realidad crea un control TWBrowse

Esa sintaxis se creo para el primer browse que se implement贸 en FiveWin y de ah铆 que se usase LISTBOX, por su semejanza con un ListBox. Luego se han ido implementando nuevos browses con nuevas sintaxis y m谩s capacidades.

Tambien hay browses que han desarrollado usuarios avanzados de FiveWin, como el TSBrowse del Maestro Manuel Mercado. El m谩s potente que ha creado FiveTech es el TXBrowse y tienes un ejemplo en FWH\samples\TestXBrw.prg

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 18
Joined: Wed Nov 04, 2009 09:41 AM
Re: Horizontal scroll en un listbox
Posted: Wed Dec 30, 2009 05:01 PM

oK!. Gracias Antonio.

No sabia que: Redefine ListBox fields....era equivalente a Redefine TWBrowse...etc,etc,etc...

Pues nada. Para la otra ya lo s茅... :D

Continue the discussion