Autor |
Mensaje |
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Recorrer Y Reposicionar Un TreeView [SOLUCIONADO]
A ver, gente, que estoy espeso y hay algo que no entiendo en los treeview.
Problema:
El control DirView es un treeview que muestra un árbol de directorios. Si llamas al método miDirview.NewFolder() muestra un texbox, con el texto "Nueva Carpeta" seleccionado, ordenado en su lugar dentro de la lista de carpetas. Tecleas el nombre de la carpeta, pulsas enter y se crea el directorio. O pulsas escape y lo cancelas. Hasta aquí perfecto.
Sin embargo, si tu lista de carpetas es extensa y la carpeta "Nueva Carpeta" no es visible en la ventana del DirView porque queda "más abajo", todo falla. Ni se reposiciona el Dirview, ni se crea el textbox, ni nada.
"No problemo" te dices a tí mismo. miDirView.Children[0] es una referencia al treeview interno. Recorro el treeview, encuentro la clave más próxima a "Nueva Carpeta", la hago visible y luego llamo a miDirview.NewFolder. Algo así como:
public function addCarpeta()
dim t as treeview
t=miDirView.Children[0]
t.movefirst
while t.current.text < "Nueva Carpeta"
t.movenext
wend
t.current.ensurevisible
miDirview.NewFolder()
Pero que si quieres arroz Catalina. No soy capaz de recorrer el jodío treeview.
Resumiendo: ¿Cómo se puede recorrer un treeview para hacer visible la clave que te interese?
¿Alguna idea?
Saludos.
última edición por shordi el Martes, 01 Abril 2014, 08:46; editado 1 vez
|
#1 Domingo, 30 Marzo 2014, 10:20 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Recorrer Y Reposicionar Un TreeView
Puede ser que al recorrer el árbol estés cambiando el foco o cursor del ítem activo, por lo tanto "current" puede que no sea lo que esperas. ¿Has probado sin recorrer el árbol y hacer solamente 't.current.ensurevisible'?
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#2 Domingo, 30 Marzo 2014, 19:10 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Recorrer Y Reposicionar Un TreeView
No funciona. Parece que el método del dirview .newfolder es algo peculiar. Todo se solucionaría si pudiese manipular el treeview para que hiciese el scroll hasta la carpeta inmediatamente anterior a "Nueva Carpeta", y luego llamase al .newfolder, pero esto de los treeviews, como que es un lío de cohoneh.
|
#3 Domingo, 30 Marzo 2014, 19:39 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Recorrer Y Reposicionar Un TreeView
He trasladado la consulta a la lista de correo de sourceforge, a ver si alguien se descuelga con la solución.
|
#4 Lunes, 31 Marzo 2014, 10:33 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Recorrer Y Reposicionar Un TreeView
Shordi:
Iba a intentar algo, pero ahora mismo no puedo arrancar gambas.
Tengo que esperar una tarde o un día, para la nueva revisión de Gambas3 de desarrollo.
No se si esta consulta te solucionara el problema. Iba a intentar el ejemplo.
http://www.lawebdelprogramador.com/...5-Treeview.html
Shordi, cuando tengas un problema súbenos un pequeño ejemplo donde podamos ver el problema.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#5 Lunes, 31 Marzo 2014, 10:46 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Recorrer Y Reposicionar Un TreeView
Citar: Shordi, cuando tengas un problema súbenos un pequeño ejemplo donde podamos ver el problema.
Acabo de subir una nueva versión del cliente ftp gbft, que contiene dicho bug. Sólo ejecútalo y pulsa en crear nueva carpeta en la máquina local. Si tu lista de carpetas es extensa y el lugar de "Nueva Carpeta" no es visible (al final de la N y antes de la O), verás el bug en acción.
Saludos.
|
#6 Lunes, 31 Marzo 2014, 11:25 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Recorrer Y Reposicionar Un TreeView
Citar: No se si esta consulta te solucionara el problema
Me temo que no... al menos no veo que eso me pueda ayudar.
Gracias por el esfuerzo que le has echado.
Saludos.
|
#7 Lunes, 31 Marzo 2014, 11:27 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Recorrer Y Reposicionar Un TreeView
Acabo de subir una nueva versión del cliente ftp gbft, que contiene dicho bug.
¿Donde está? En el forge no veo ninguna actualización...
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#8 Lunes, 31 Marzo 2014, 16:54 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Recorrer Y Reposicionar Un TreeView
Jesús:
De momento la he subido aquí: http://foro.gambas-es.org/viewtopic.php?f=5&t=3730 como he dicho por ahí, no he sido capaz de subir la actualización al forge... porque no he entendido el procedimiento (sin contar que me he asustado al explorar sus pantallas, que una cosa es subir un tar.gz y otra el "alimentar" esa bestia llena de logs, wikis, comentarios, seguimientos, etc. etc.)
Si me dices de forma "pa tontos" cómo lo puedo subir, lo subo.
Gracias.
|
#9 Lunes, 31 Marzo 2014, 17:06 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Recorrer Y Reposicionar Un TreeView
Tengo que hacer un par de pruebas, luego te comento. Espero te acuerdes de tu contraseña del forge, para poder subir los cambios...
Salu2
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#10 Lunes, 31 Marzo 2014, 17:26 |
|
|
|