Hola,
Fijaros el ejemplo que adjunto:
Un TreeView y dos botones: "Poner check" y "quitar check"
Me pasa lo siguiente:
Al iniciar, me puedo mover perfectamente con la barra de desplazamiento lateral.
1.- Pulso el botón "poner check"
Me aparecen los checkboxes al lado de cada TreeViewItem, pero ya no funciona el
scroll lateral. Sólo me puedo mover con las flechas del cursor.
Curiosamente, si me muevo con las flechas, vuelve a funcionar la barra de scroll.
(fijaros que la barra sólo vuelve a funcionar cuando me muevo de "B2" a "B3", esto es,
cuando se tiene que actualizar la barra de scroll)
2 .- Estando en el primer elemento, pulso "poner Check" y luego la techa <fin>.
Me baja al último elemento del Tree, pero la barra de scroll no se actualiza, pero ya vuelve a funcionar.
3.- Pulso el botón "Quitar check"
No quita los checkbox, pero tampoco los puedo seleccionar.
Un saludico,
Fredy
--
Attached files PRUEBATREES.zip (1.8 KB)Â
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.
Problemas detectados con los TreeViews
Problemas detectados con los TreeViews
Fredy,
me temo que lCheckBoxes no se puede poner a .F. después de haberlo puesto a
..T.. Esto es un trozo de la documentación del API con respecto al estilo
TVS_CHECKBOXES:
"Once a tree-view control is created with this style, the style cannot be
removed. Instead, you must destroy the control and create a new one in its
place."
Además, siempre hay que activarlo antes de cargar los items, como hace el
propio IDE. Esto es otra parte de la misma documentación:
"If you want to use this style, you must set the TVS_CHECKBOXES style with
SetWindowLong after you create the treeview control, and before you populate
the tree. Otherwise, the checkboxes might appear unchecked, depending on
timing issues."
Resumiendo, que haciendo eso el control hace cosas raras, como realmente te
está pasando.
--
Un saludo,
José F. Giménez
me temo que lCheckBoxes no se puede poner a .F. después de haberlo puesto a
..T.. Esto es un trozo de la documentación del API con respecto al estilo
TVS_CHECKBOXES:
"Once a tree-view control is created with this style, the style cannot be
removed. Instead, you must destroy the control and create a new one in its
place."
Además, siempre hay que activarlo antes de cargar los items, como hace el
propio IDE. Esto es otra parte de la misma documentación:
"If you want to use this style, you must set the TVS_CHECKBOXES style with
SetWindowLong after you create the treeview control, and before you populate
the tree. Otherwise, the checkboxes might appear unchecked, depending on
timing issues."
Resumiendo, que haciendo eso el control hace cosas raras, como realmente te
está pasando.
--
Un saludo,
José F. Giménez
Problemas detectados con los TreeViews
Uff! Vaya con los de microsoft
(
En fin, como siempre, le daremos vueltas y más vueltas hasta conseguir lo
que queremos, por mucho que windows se empeñe en hacernoslo imposible. Total,
¿no es eso lo que nos caracteriza a los programadores?
He pensado que tal vez con SaveExpandState, creando de nuevo el tree sin
checkbox y haciendo un RestoreSpandState se pueda hacer lo suficientemente
rápido para que el usuario no se entere.
Pero hay un parámetro por ahí rondando (cState) que no sé cómo se utiliza.
¿Una ayudita?
Un saludico,
Fredy
> Fredy,
>
> me temo que lCheckBoxes no se puede poner a .F. después de haberlo
> puesto a .T.. Esto es un trozo de la documentación del API con
> respecto al estilo TVS_CHECKBOXES:
>
> "Once a tree-view control is created with this style, the style cannot
> be removed. Instead, you must destroy the control and create a new one
> in its place."
>
> Además, siempre hay que activarlo antes de cargar los items, como hace
> el propio IDE. Esto es otra parte de la misma documentación:
>
> "If you want to use this style, you must set the TVS_CHECKBOXES style
> with SetWindowLong after you create the treeview control, and before
> you populate the tree. Otherwise, the checkboxes might appear
> unchecked, depending on timing issues."
>
> Resumiendo, que haciendo eso el control hace cosas raras, como
> realmente te está pasando.
>
> José F. Giménez
>

En fin, como siempre, le daremos vueltas y más vueltas hasta conseguir lo
que queremos, por mucho que windows se empeñe en hacernoslo imposible. Total,
¿no es eso lo que nos caracteriza a los programadores?
He pensado que tal vez con SaveExpandState, creando de nuevo el tree sin
checkbox y haciendo un RestoreSpandState se pueda hacer lo suficientemente
rápido para que el usuario no se entere.
Pero hay un parámetro por ahí rondando (cState) que no sé cómo se utiliza.
¿Una ayudita?
Un saludico,
Fredy
> Fredy,
>
> me temo que lCheckBoxes no se puede poner a .F. después de haberlo
> puesto a .T.. Esto es un trozo de la documentación del API con
> respecto al estilo TVS_CHECKBOXES:
>
> "Once a tree-view control is created with this style, the style cannot
> be removed. Instead, you must destroy the control and create a new one
> in its place."
>
> Además, siempre hay que activarlo antes de cargar los items, como hace
> el propio IDE. Esto es otra parte de la misma documentación:
>
> "If you want to use this style, you must set the TVS_CHECKBOXES style
> with SetWindowLong after you create the treeview control, and before
> you populate the tree. Otherwise, the checkboxes might appear
> unchecked, depending on timing issues."
>
> Resumiendo, que haciendo eso el control hace cosas raras, como
> realmente te está pasando.
>
> José F. Giménez
>
Problemas detectados con los TreeViews
Fredy,
no sé si te servirá, pero prueba a utilizar una TOptionList en vez del
treeview. Permite también contrucciones tipo árbol, y aunque la apariencia y
el comportamiento no son iguales al treeview, sí que permite poner o quitar
los checkboxes en runtime a cada uno de los items de forma independiente.
--
Un saludo,
José F. Giménez
no sé si te servirá, pero prueba a utilizar una TOptionList en vez del
treeview. Permite también contrucciones tipo árbol, y aunque la apariencia y
el comportamiento no son iguales al treeview, sí que permite poner o quitar
los checkboxes en runtime a cada uno de los items de forma independiente.
--
Un saludo,
José F. Giménez