FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ayuda con un filelistbox
Hola a todos saludos desde mexico.
Tengo un problema con filelistbox ( soy nuevo en POO), la cuestion es que quiero obtenerr los elemntos (files) de un directorio a un filelistbox (todods loa archivos). ok, eso es sencillo, pero no los quiero en orden alfabetico. y cuando los paso de ese a otro filelistbox tambien me los va acomodando por orden alfabetico sin importar el orden en que los valla agregando. que puedo hacer? filelistbox no tiene propiedad sorted. he oido sobre modificar algo en el tcustombox pero no se si sea posible, o como le hago. Gracias de antemano!. ( todo ello es por que no quiero la ruta completa de los archivos en la lista) |
#2
|
||||
|
||||
Hola,
El caso es que no voy sino a confundir, pero, allá va. "TFileListBox" no cuenta con una propiedad "Sorted", es cierto, pero "TFileListBox" hereda de "TCustomListBox", y, este sí cuenta con una propiedad "Sorted". No solo eso, sino que, en el constructor de "TFileListBox" se da a dicha propiedad el valor "True". ¿Entonces, qué puede hacerse? Probablemente de varias formas pueda conseguirse lo que se trata de conseguir, sin embargo, parece funcionar con el "truco" de las Clases interpuestas, que explica Ian Marteens y alguna vez refirió aquí mismo roman. Una forma de implementar lo dicho. En el formulario en donde utilizas el "TFileListBox", antes de su declaración, es decir, antes de la declaración del tipo del formulario, incluye el siguiente código: Dicho constructor (es lo que nos interesa, puesto que es en el constructor de "TFileListBox" donde se da "por defecto" el valor "True" a la propiedad "Sorted", como se ha dicho, heredada de "TCustomListBox") se implementa como sigue: Y eso es todo: tu "FileListBox" ya no mostrará ordenados alfabéticamente los elementos que contenga. En el ejemplo que se adjunta lo verás claramente. Sin embargo, creo que lo propuesto no sirve del todo, puesto que no se ordenaran los elementos del "TFileListBox" que tú añadas, pero sí parecen ordenarse los elementos que el propio componente añade, es decir, los archivos que encuentra en un determinado directorio. No sabré ir más allá por el momento, puesto que creo que esto último tiene que ver con cómo se añaden elementos al componente en cuestión: se recorre un directorio en busca de sus archivos (véase el método privado "ReadFileNames" de "TFileListBox") y estos se encuentran ya de forma ordenada, y de forma ordenada se añaden al componente... Algo como lo siguiente se permite, quiere decirse que compila sin problemas, sino es que no parece tener efecto alguno: Tal vez podríamos ceñirnos a lo que verdaderamente te preocupa: Cita:
Si te refieres a obtener el nombre de los archivos, sin la ruta, por ejemplo el archivo seleccionado en el "FileListBox" (aunque creo que no la obtendrías, por lo dicho más arriba) tal vez podrías utilizar la función "ExtractFileName". A ver si alguien puede aclarar un poco más el asunto y a ti puede servirte de algo el rollo que acabo de soltar. Última edición por dec fecha: 25-08-2005 a las 04:33:04. Razón: (añadir un enlace) |
#3
|
|||
|
|||
ok tratare de ponerlo en marcha y te comento lo que sucede.
Lo que pasa es que tengo varios listbox (referentes a distintos directorios) pero cuando quiero agregar a un tercero, uno de los seleccionados en los listbox anteriores , en este tercero, me los va agregando en forma alfabetica y con la ruta completa: (bueno, asi lo hago) filelistbox3.Items.add(filelistbox1.filename); y alguien me recomedo algo como esto:_ filelistbox2.Items.add(filelistbox1.Items.Strings[filelistbox1.ItemIndex]); pero ahora que me comentaste de "extractfilename", podre resolver uno de los puntos. Gracias ! |
#4
|
|||
|
|||
ok ya lo probe, de hecho funciona (gracias) pero alreves, los archivos que abre segun el directorio que se le indique los acomoda en orden alfabetico y los que se van agregando esos si los va acomodando en el orden en que se agreguen.
De hecho me sirve para resolver parte del problema.! Ahora otra cuestion. Una vez utilizando el extractfilename, que como comento parafines de mostrar unicamente el nombre de los archivos en el filelistbox a la que se le fueron agregando los elementos, Ya no puedo recuoerar la ruta para utilizar dicha seleccion. ?? Es decir, para mostrar la lista se requiere ademas de que no se muestre en orden alfabetico, se muestre solo el nombre del archivo. Pero requiero recuperar la ruta al ahora de utilizar el elemneto seleccionado. Gracias de antemano y un saludo! |
|
|
|