Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: JBB en Mayo 06, 2015, 12:18:37 pm
-
Hola.
En primer lugar quiero agradecerle a Leandro por su respuesta sobre "pidl" y he decidido que tengo mas que suficiente con lo que se ahora sobre el LV y quiero terminar YAAAA.
YAAAA es mucho decir, pero avanzar es lo importante y me estaba quedando bloqueado.
Estoy utilizando el LV con ComctlLib 5 que me gusta mas que el MSComctlLib ya que entre otras cosas, al seleccionar el Item queda fatal, de manera que he discurrido para que salga limpio, cosa que por la red, a nadie se le ha ocurrido y he visto cientos de ejemplos de todo tipo relacionados con el tema.
Empiezo poniendo la solución ya que creo que va ha interesarle a muchos. Se puede hacer en la V. 5 y 6 y a todo lo que se quiera, si entendéis la idea.
(http://ecein.com/EjemploItem.jpg)
En la foto se puede ver arriba mi solución y abajo por defecto del LV ComctlLib o MSComctlLib
Le he añadido un efecto de estiramiento para que sea mas visual, a gustos colores.
Puedes cambiarle la foto de fondo o utilizar un color, repito a gustos colores.
Puedes personalizarlo como quieras.
Tenia intención de poner el código pero veo que es mejor poner el zip para descargarlo y lo veáis.
Aquí el zip: Quiero prepararlo bien para que se entienda y lo subo en unos días.
Una carpeta con 7.000 MIL archivos tarda de 2 a 3 segundos en cargarla. Lo hace a la misma velocidad que el explorer de windows, ni mas ni menos. Texteado.
El ComctlLib 5.0 SP2 funciona en todas las versiones incluida la próxima de Windows 10. Lo tengo texteado.
Vale la pena tener un Ejemplo así.
He dedicado mucho tiempo en todo el tema de ListView y por la red, que pena, pena, pena la de tiempo que se puede llagar a perder para tener algo que es tan sencillo, claro cuando se sabe.
Y estas son las cosas que estoy aborrecido de buscar y no encontrar nada.
Con el MSComctlLib lo tengo solucionado, pero quiero seguir haciéndolo con el ComctlLib.
1. Cambiar la altura del Item. No me digáis con el imagelist mas grande o una fuente mas grande. Cambiar la altura, ok.
Se puede poner una imagen dentro de la linea (Item) ????? de esta manera se puede solucionar la altura.
Otra solución seria poner un icono dentro de un SubItem oculto, se puede ????? Creo, no lo se.
2. Ponerle uno icono al Drag.icon al arrastrar el Item ????? Con el MSComctlLib se hacerlo pero con ComctlLib nanay
3. Como saco el tipo de carpeta.
Ejemplo: Al cargar los iconos saca el tipo, jpg, png. txt etc. Pero la carpeta lo tengo que poner manual y haciendo trampa con un espacio delante para el sorteo.
tItem.SubItems(1) = DirList(X).Type
En archivos los saca y en carpetas en blanco.
4. Como cargar en el ListView los iconos de:
. MI_PC
. Panel de Control
. MIS_SITIOS_DE_RED
. IMPRESORAS_FAX
. PAPELERA
En plan chapuza, lo se hacer, pero quiero hacerlo bien para que recoja los textos en sus diferentes idiomas.
Las rutas a ejecutar ya las tengo, al igual que todo lo referente a Carpetas Especiales del Sistema
Si le interesa a alguien, esto seria para abrirlos con el ShellExecute:
MI_PC ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
PANEL_DE_CONTROL ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}
MIS_SITIOS_DE_RED ::{208D2C60-3AEA-1069-A2D7-08002B30309D}
IMPRESORAS_FAX ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{2227A280-3AEA-1069-A2DE-08002B30309D}
PAPELERA ::{645FF040-5081-101B-9F08-00AA002F954E}
Ahora fuera de contexto, explico lo que pretendo:
Llevo 17 años trabajando a diario con ordenadores y el sistema de carpetas de Windos, Mac, Linux, no son ni por mucho para profesionales que se mueven con gran cantidad de archivos o carpetas a diario. Es una locura.
Ejemplo: El que administra o hace un portal web o una web, cuantas carpetas y archivos mueve ???? Ufffffff, muchos, pero que muchos.
Moverse en esos volúmenes de carpetas y archivos, es incomodo con ventanas y mas ventanas abiertas.
Y lo se por experiencia propia.
Hace unos 12 años inicie una leve idea de esto, y con el paso de los años lo he retomado y abandonado ya que VB6 no es mi fuerte, y quería mi propio Explorador tipo a Windows pero todo en una sola ventana y poder moverte por gran cantidad de carpetas o archivos al instante.
De esta forma puedo asegurar que se puede ganar mucho tiempo al final del día.
En el zip pongo solo el ListView.
Una vez lo tenga finalizado, quiero ponerlo en la RED TOTALMENTE GRATIS y si hay suerte, espero que esas compañías empiecen a pensar que cuando dicen Versión profesional o Home son lo mismo, no le veo la diferencia de cara a trabajar.
GRACIAS A TODOS
Para Leandro:
Hace unos dias puse un tema de insertar el CommonDialog dentro de un Picture, pero nadie a respirado ni con si o no.
Tienes alguna idea al respecto.
Eso seria 100% perfecto.
Otra cosa.
Hace un rato he visto en un foro, una respuesta tuya que se pueden cargar pngs en LV 5 con SetLVPictureBK ListView1.hwnd, "C:\png01.png"
Lo he probado y funciona y he visto que lo que carga es la imagen de fondo.
Como hago un bucle para cargar pngs y ponerle lo típico, nombre , tag, icono, subitems etc.
Muchas gracias.
-
jaja si es muy grosa esa gente, pero bueno volviendo a tu pregunta seria mas facil para todos si pones la funcion InsertRootFolder la verdad ahora no recuerdo bien como era esto del pidl pero me parece lo obtenias con el api GetPIDLFromSpecialFolderID y CSIDL_DESKTOP era la constante para el escritorio. seguramente donde descargaste el modulo debe tener un ejemplo de uso.