Me gustaria que al seleccionar un TExplorerGroup diferente al que tengo
abierto, esete se cierre y abra el otro, es decir que solo haya uno
expandido a la vez
Es posible ?
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
TExplorerBar
-
- Mensajes: 64
- Registrado: Mar Jun 28, 2005 2:53 am
TExplorerBar
Yamil,
> Me gustaria que al seleccionar un TExplorerGroup diferente al que tengo
> abierto, esete se cierre y abra el otro, es decir que solo haya uno
> expandido a la vez
> Es posible ?
Haría falta un evento OnItemExpand para controlarlo, que no existe
actualmente. Bueno, ya sí, porque lo acabo de poner
Añade lo siguiente a algún prg de tu proyecto:
//---------------------------------------------------------- ----------------
CLASS TExplorerBar FROM XExplorerBar
EVENT OnItemExpand( oSender, nItem )
METHOD WMLButtonDown()
ENDCLASS
//---------------------------------------------------------- ----------------
METHOD WMLButtonDown( nWParam, nLParam ) CLASS TExplorerBar
LOCAL nItem := ::HitTest( LoWord( nLParam ), HiWord( nLParam ) )
LOCAL lOk
IF nItem != 0
IF ( lOk := ::OnItemExpand( nItem ) ) == Nil .OR. lOk
::aItems[ nItem ]:lExpanded := !::aItems[ nItem ]:lExpanded
ENDIF
ENDIF
RETURN Nil
//---------------------------------------------------------- --------------------
Y después, en el formulario donde tengas la explorerbar, tendrás que asignar
a mano el evento (hasta que actualicemos el IDE). Lo puedes hacer en el
evento OnInitialize del formulario:
METHOD FormInitialize( oSender ) CLASS TForm1
::oExplorerBar1:OnItemExpand := "ExplorerBar1ItemExpand"
RETURN Nil
Para hacer lo que quieres, el código del evento quedaría más o menos así:
METHOD ExplorerBar1ItemExpand( oSender, nItem ) CLASS TForm1
IF !oSender:aItems[ nItem ]:lExpanded
AEval( oSender:aItems, {| oItem | oItem:lExpanded := .F. } )
ENDIF
RETURN Nil
--
Un saludo,
José F. Giménez
> Me gustaria que al seleccionar un TExplorerGroup diferente al que tengo
> abierto, esete se cierre y abra el otro, es decir que solo haya uno
> expandido a la vez
> Es posible ?
Haría falta un evento OnItemExpand para controlarlo, que no existe
actualmente. Bueno, ya sí, porque lo acabo de poner

Añade lo siguiente a algún prg de tu proyecto:
//---------------------------------------------------------- ----------------
CLASS TExplorerBar FROM XExplorerBar
EVENT OnItemExpand( oSender, nItem )
METHOD WMLButtonDown()
ENDCLASS
//---------------------------------------------------------- ----------------
METHOD WMLButtonDown( nWParam, nLParam ) CLASS TExplorerBar
LOCAL nItem := ::HitTest( LoWord( nLParam ), HiWord( nLParam ) )
LOCAL lOk
IF nItem != 0
IF ( lOk := ::OnItemExpand( nItem ) ) == Nil .OR. lOk
::aItems[ nItem ]:lExpanded := !::aItems[ nItem ]:lExpanded
ENDIF
ENDIF
RETURN Nil
//---------------------------------------------------------- --------------------
Y después, en el formulario donde tengas la explorerbar, tendrás que asignar
a mano el evento (hasta que actualicemos el IDE). Lo puedes hacer en el
evento OnInitialize del formulario:
METHOD FormInitialize( oSender ) CLASS TForm1
::oExplorerBar1:OnItemExpand := "ExplorerBar1ItemExpand"
RETURN Nil
Para hacer lo que quieres, el código del evento quedaría más o menos así:
METHOD ExplorerBar1ItemExpand( oSender, nItem ) CLASS TForm1
IF !oSender:aItems[ nItem ]:lExpanded
AEval( oSender:aItems, {| oItem | oItem:lExpanded := .F. } )
ENDIF
RETURN Nil
--
Un saludo,
José F. Giménez
-
- Mensajes: 64
- Registrado: Mar Jun 28, 2005 2:53 am
TExplorerBar
Muchisimas gracias....!
"Jose F. Gimenez" <jfgimenez@wanadoo.es> wrote in message
news:[email=43ec63bc@ozsrvnegro.ozlan.local...]43ec63bc@ozsrvnegro.ozlan.local...[/email]
> Yamil,
>
> > Me gustaria que al seleccionar un TExplorerGroup diferente al que tengo
> > abierto, esete se cierre y abra el otro, es decir que solo haya uno
> > expandido a la vez
> > Es posible ?
>
> Haría falta un evento OnItemExpand para controlarlo, que no existe
> actualmente. Bueno, ya sí, porque lo acabo de poner
>
> Añade lo siguiente a algún prg de tu proyecto:
>
>
//---------------------------------------------------------- ----------------
>
> CLASS TExplorerBar FROM XExplorerBar
>
> EVENT OnItemExpand( oSender, nItem )
> METHOD WMLButtonDown()
>
> ENDCLASS
>
>
//---------------------------------------------------------- ----------------
>
> METHOD WMLButtonDown( nWParam, nLParam ) CLASS TExplorerBar
>
> LOCAL nItem := ::HitTest( LoWord( nLParam ), HiWord( nLParam ) )
> LOCAL lOk
>
> IF nItem != 0
> IF ( lOk := ::OnItemExpand( nItem ) ) == Nil .OR. lOk
> ::aItems[ nItem ]:lExpanded := !::aItems[ nItem ]:lExpanded
> ENDIF
> ENDIF
>
> RETURN Nil
>
>
//---------------------------------------------------------- ----------------
----
>
> Y después, en el formulario donde tengas la explorerbar, tendrás que
asignar
> a mano el evento (hasta que actualicemos el IDE). Lo puedes hacer en el
> evento OnInitialize del formulario:
>
> METHOD FormInitialize( oSender ) CLASS TForm1
>
> ::oExplorerBar1:OnItemExpand := "ExplorerBar1ItemExpand"
>
> RETURN Nil
>
>
> Para hacer lo que quieres, el código del evento quedaría más o menos así:
>
> METHOD ExplorerBar1ItemExpand( oSender, nItem ) CLASS TForm1
>
> IF !oSender:aItems[ nItem ]:lExpanded
> AEval( oSender:aItems, {| oItem | oItem:lExpanded := .F. } )
> ENDIF
>
> RETURN Nil
>
>
> --
> Un saludo,
>
> José F. Giménez
>
>
"Jose F. Gimenez" <jfgimenez@wanadoo.es> wrote in message
news:[email=43ec63bc@ozsrvnegro.ozlan.local...]43ec63bc@ozsrvnegro.ozlan.local...[/email]
> Yamil,
>
> > Me gustaria que al seleccionar un TExplorerGroup diferente al que tengo
> > abierto, esete se cierre y abra el otro, es decir que solo haya uno
> > expandido a la vez
> > Es posible ?
>
> Haría falta un evento OnItemExpand para controlarlo, que no existe
> actualmente. Bueno, ya sí, porque lo acabo de poner

>
> Añade lo siguiente a algún prg de tu proyecto:
>
>
//---------------------------------------------------------- ----------------
>
> CLASS TExplorerBar FROM XExplorerBar
>
> EVENT OnItemExpand( oSender, nItem )
> METHOD WMLButtonDown()
>
> ENDCLASS
>
>
//---------------------------------------------------------- ----------------
>
> METHOD WMLButtonDown( nWParam, nLParam ) CLASS TExplorerBar
>
> LOCAL nItem := ::HitTest( LoWord( nLParam ), HiWord( nLParam ) )
> LOCAL lOk
>
> IF nItem != 0
> IF ( lOk := ::OnItemExpand( nItem ) ) == Nil .OR. lOk
> ::aItems[ nItem ]:lExpanded := !::aItems[ nItem ]:lExpanded
> ENDIF
> ENDIF
>
> RETURN Nil
>
>
//---------------------------------------------------------- ----------------
----
>
> Y después, en el formulario donde tengas la explorerbar, tendrás que
asignar
> a mano el evento (hasta que actualicemos el IDE). Lo puedes hacer en el
> evento OnInitialize del formulario:
>
> METHOD FormInitialize( oSender ) CLASS TForm1
>
> ::oExplorerBar1:OnItemExpand := "ExplorerBar1ItemExpand"
>
> RETURN Nil
>
>
> Para hacer lo que quieres, el código del evento quedaría más o menos así:
>
> METHOD ExplorerBar1ItemExpand( oSender, nItem ) CLASS TForm1
>
> IF !oSender:aItems[ nItem ]:lExpanded
> AEval( oSender:aItems, {| oItem | oItem:lExpanded := .F. } )
> ENDIF
>
> RETURN Nil
>
>
> --
> Un saludo,
>
> José F. Giménez
>
>