Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-08-2005
Jorghino reyes Jorghino reyes is offline
Miembro
 
Registrado: ago 2005
Ubicación: Jalisco Mexico
Posts: 41
Poder: 0
Jorghino reyes Va por buen camino
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)
Responder Con Cita
  #2  
Antiguo 25-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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:

Código Delphi [-]
  type
    TFileListBox = class(FileCtrl.TFileListBox)
    public
      constructor Create(AOwner: TComponent); override;
    end;
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:

Código Delphi [-]
  constructor TFileListBox.Create(AOwner: TComponent);
  begin
    inherited Create(AOwner);
    Sorted := false;
  end;
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:

Código Delphi [-]
  TStringList(TCustomListBox(FileListBox).Items).Sorted := false;
Tal vez podríamos ceñirnos a lo que verdaderamente te preocupa:

Cita:
Empezado por Jorghino reyes
(todo ello es por que no quiero la ruta completa de los archivos en la lista)
Si te refieres a no ver la ruta completa de los archivos en el "FileListBox" no me cuadra el asunto: no parece mostrarse la ruta de los mismos y sí solamente el nombre de los archivos.

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.
Archivos Adjuntos
Tipo de Archivo: zip ejemplo.zip (1,9 KB, 48 visitas)
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 25-08-2005 a las 03:33:04. Razón: (añadir un enlace)
Responder Con Cita
  #3  
Antiguo 26-08-2005
Jorghino reyes Jorghino reyes is offline
Miembro
 
Registrado: ago 2005
Ubicación: Jalisco Mexico
Posts: 41
Poder: 0
Jorghino reyes Va por buen camino
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 !
Responder Con Cita
  #4  
Antiguo 26-08-2005
Jorghino reyes Jorghino reyes is offline
Miembro
 
Registrado: ago 2005
Ubicación: Jalisco Mexico
Posts: 41
Poder: 0
Jorghino reyes Va por buen camino
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!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 20:40:12.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi