Página 1 de 1

Problemas detectados con los TreeViews

Publicado: Mar Feb 21, 2006 2:32 pm
por fredy[1]
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)Â

Problemas detectados con los TreeViews

Publicado: Mar Feb 21, 2006 9:01 pm
por jfgimenez
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

Problemas detectados con los TreeViews

Publicado: Mar Feb 21, 2006 10:44 pm
por Fredy
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
>

Problemas detectados con los TreeViews

Publicado: Mié Feb 22, 2006 10:05 am
por jfgimenez
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