![]() |
![]() |
| 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
|
||||
|
||||
|
Q tal... hmm como le veo amigo Delphius kizas no estas usando el componente q te sugirio Roman... veo q en tu ultima respuesta dices TreeView y Roman te sugiere un ListView... aki va algo de codigo de como puedes usar el ListView con 2 columnas... lo pongo solo por si acaso
seria cuestion de repetir esto para cada item. Parto del echo q ya insertaste el ListView (MyListView) y q tienes su propiedad ViewStyle = vsReport. No olvides crear las columnas para los items (2 clicks sobre el ListView). Bien creo q con eso seria. Salu2 ![]()
__________________
Diego. Colombia es pasión. |
|
#2
|
||||
|
||||
|
Claro que será un poco más de trabajo programar un ListView que un ListBox pero se compensa con creces con lo que ganas. Por ejemplo, seguro querrás que tus usuarios puedan ordenar la lista por artista, duración, género, título, etc., simplemente dando click sobre la columna correpondiente. O bien dar la opción de búsqueda por cualquier columna, o mostrar algún icono informativo para cada item, etc., etc., etc. Si a esto le juntas lo del diseño, creo que de hecho es más fácil con el ListView que con el ListBox ¿no?
Claro que puedes programar tu propia componente pero en tal caso partir de un ListView me parece buena idea. // Saludos |
|
#3
|
||||
|
||||
|
diegofhernando disculpa, si estuve usando el componente indicado... lo que pasa es que en el foro me equivoque de nombre. Además el código que tu expusiste es lo que quiero evitar...
Roman, no te discuto que esa son funcionalidades bastantes buenas, pero a lo que voy ... (y creo que es muy importante para el usuario) es que al ejecutar la aplicación instantáneamente aparezca el contenido de la playlist. En un ListBox esto se logra de manera muy sencilla: ListBox1.Items.LoadFromFile(), en donde supongamos que paso como parámetro un arhivo Mp3PlayList.tag en donde tengo ya los datos. Si usara el ListView no podría hacer esto, con lo que debería hacer un código LeerPlaylist() en donde debería leer línea por línea y determinar cada uno de los datos a almacenar en cada columna. Y esto, en cuestión de tiempo es un bochorno. ¡Un usuario que poseea una lista ,digamos razonablemente 200 temas, no va a esperar que le aparezcan los resultados en gotitas; desea resultados ya! ¿Entiendes mi punto de vista?. Si tengo en cuenta esto, el ListBox me viene de 100. Claro está, que a la hora de agregarle temas, el ListBox no es el indicado. Si tienes una idea lo bastante buena como para que con el ListView pueda abrir un archivo, te la agradecería. |
|
#4
|
||||
|
||||
|
Cita:
¿qué te hace pensar que el tiempo extra que te tome programar LeerPlaylist() se reflejará en la velocidad con que se cargue el ListView? Te aseguro que el usuario no se percatará de la diferencia. Más aún, ¿te has fijado en cómo se comporta un ListBox con muchos ítems? Llega un momento en que el desplazamiento se hace lento, pausando un poco en cada cambio de página. Por otra parte no alcanzo a ver cómo almacenas los datos en el archivo que carga el LiisBox. ¿Cómo separas los campos? ¿Cómo editas o agregas entradas? Ahora bien, ¿has pensado en usar ClientDataSets? Con ellos puedes almacenar las listas de canciones como si fuera una base de datos pero sin necesidad de un motor de bd. La conveniencia es que tienes a tu disposición todos los controles DBAware para agregar/editar canciones de una lista incluyendo un DBGrid que te cagará en automático la lista tan pronto abras el data set. Incluso puedes usar un ClientDataSet para alimentar a un ListView. Aunque pierdes la potencia de los controles DBAware para el listado, es sencillo programar la rutina para cargarlo y sigue siendo rápido. ncluso si manejas listas realmente grandes, puedes usar el ListView en modo virtual con lo que los datos se muestran ipso-facto. En fin, creo que tienes alternativas mucho mejores que un ListBox. // Saludos |
|
#5
|
||||
|
||||
|
La solución que yo propongo no tiene nada que ver con lo dicho hasta ahora, y es Simplista al máximo, pero en determinadas ocasiones me ha dado buen resultado.
Poner una fuente no proporcional (Courier o Courier New) y ajustar los espacios simplemente con una rutina que añada espacios o ceros. PadRight y PadLeft de las Rxlibs van muy bien para ese propósito. No seas muy duro conmigo Delphius, sé que no es la solución óptima. Simplemente dí que no te interesa esta solución ![]() Saludos |
|
#6
|
||||
|
||||
|
Estas mezclando cosas... El control ListView se usa en el explorer y otros programas y se desempeña bien...otra cosa es que de un poco mas de lata para programar... Ahora, como son las cosas:
- Haces el truco de fuentes - Usas el listview - Consigues un control de terceros (que con el tiempo que lleva el thread ya hubieras evaluado! si te fijaste en el link?) Si necesitas la mas brutal velocidad al cargar arboles/listas, necesitas un arbol/lista brutal, como http://www.delphi-gems.com/VirtualTreeview/VT.php pero requiere mas codigo (eso si: Mas velocidad es IMPOSIBLE!) Ademas este control se transforma a cualquier cosas, incluso grids...
__________________
El malabarista. |
|
#7
|
||||
|
||||
|
Cita:
Por otra parte, tampoco deshecharía los ClientDataSets tan rápido. // Saludos |
|
#8
|
||||
|
||||
|
Listo el pollo!... logré lo que tanto queria y con el ListBox.
Realicé un procedimiento que lee linea por linea un archivo de registros en donde guardo toda info de los temas... ha decir verdad quede maravillado con la velocidad de reación de dicho algoritmo, nunca pensé que fuera tan rápido. Para lograr ese "ordenamiento" lo que hago es "rellenar" con espacios en blanco hasta que sea necesario... Gracias a todos por su ayuda... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|