![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Pedías una función recursiva... y eso tienes
![]() Pensar en recursivo no es fácil, puedes tomarlo como primer paso para incluir los archivos.
Fijate que no hay else, esto es para que despues de añadir una carpeta, tambien intente añadir los archivos que haya. He puesto faAnyFile, tú ajustalo más a lo que quieras. saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#2
|
|||
|
|||
|
Lepe, gracias por tu interés, pero lo que yo quiero no es insertar archivos, mi TreeView sólo muestra carpetas.
Más o menos quiero que me quedé como el ShellTreeView. |
|
#3
|
||||
|
||||
|
Cita:
solo tiene un par de detalles, que despues de ejecutar paso a paso se vé claramente.Por cierto, no te ha ayudado a "depurar el código" sino a trabajar recursivamente.
El primer detalle es que hay que usar AddChild para que los meta dentro. El segundo, es que al llamar a la función recursiva, hay que DARLE LA RUTA COMPLETA. Una "manía" mia, es que al llamar a FindFirst, no hace falta usar el includePathDelimiter, ya que siempre se le da la ruta con la barra al final. saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#4
|
||||
|
||||
|
Cita:
Se me pasó que el metodo para agregar nodos hijos es AddChild, como bien mencionas más a bajo. Cita:
Cita:
((AFolder.Attr and faSysFile) <> faSysFile) tal vez esté de más, ya que en la llamada a FindFirst se le está diciendo que solo busque carpetas. Cita:
![]() |
|
#5
|
|||
|
|||
|
Perdón por estar tanto tiempo sin contestar...
He probado tu truco, Lepe, y funciona perfectamente, sólo hay un problemilla. Por ejemplo, si tengo esta carpeta: C:\Archivos de Programa\Archivos Comunes\Microsoft Shared ... y hago: Sólo me muestra lo siguiente: C:\ (<- esto no, es sólo para tener una referencia) Archivos de Programa Archivos Comunes (...) (...) Como podría hacer que se mostraran las carpetas dentro de Archivos comunes? |
|
#6
|
|||
|
|||
|
Vale, he avanzado algo... He estado jugando con la propiedad OnExpand del TreeView y se me ha ocurrido esto:
Ahora sólo hay un problema, al expandir una carpeta se añaden las carpetas y se muestra que se pueden expandir, perfecto, lo que yo queria, pero... ¡Se muestran las mismas carpetas dos veces! unas con la posibilidad de expandir y la otra no... No habria alguna forma de en vez de añadir un item substituirlo si este ya existe? |
|
#7
|
|||
|
|||
|
Hola, ya lo tengo casi... Esto es lo que he hecho:
Variables necesarias:
Procedimiento para añadir items al TreeView:
Procedimiento OnExpand del TreeView1:
...y para llamar-lo:
Bueno, ahora el problema está en que me hace una excepción en algunos casos: "List index out of bounds (0)" en la línia: [i]if (ParentNode.Item.Text = AFolder.Name) then en el procedimient AddFiles. Como puedo arreglar esto, no sé porqué hace este error... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|