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.

Problemas detectados con los TreeViews

Foro de Xailer profesional en español
Responder
fredy[1]
Mensajes: 218
Registrado: Mar Mar 08, 2005 2:03 am

Problemas detectados con los TreeViews

Mensaje 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)Â
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Problemas detectados con los TreeViews

Mensaje 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
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Fredy
Mensajes: 199
Registrado: Mié Mar 29, 2006 1:28 am

Problemas detectados con los TreeViews

Mensaje 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
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Problemas detectados con los TreeViews

Mensaje 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
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder