Ver Mensaje Individual
  #5  
Antiguo 14-10-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
Lo que quieres es trabajo para el VirtualStringTree

lo he usado y es extremadamente rápido con millones de nodos, es un Treeview, pero hace las veces de ListView y Grid.

En cuanto a tu pregunta, en esta linea de código, saca el imageIndex que ha de usar para pintarlo, lo hace a partir del FullID definido en el tipo de dato TShellItem. No lo he mirado con lupa, pero me parece logico que al indicar un imageIndex en el Item que se anade (de tipo TShellItem) automaticamente coja la imagen.
Código Delphi [-]
// linea de código 501
      ImageIndex := GetShellImage(FullID, ListView.ViewStyle = vsIcon, False);
Me ha picado la curiosidad y he hecho esto
Código:
    
    // linea de codigo 573
    Item.Caption := DisplayName;
    Item.ImageIndex := -1; //ImageIndex;
...Y ohh!! sorpresa, ya no aparecen los iconos en el ListView.

Como ves los tipos de datos del Shell son muy intuitivos y simples

En contrapartida a esta tecnica, podrías usar la función:
Código Delphi [-]
var icono :Ticon;
    lpicono:Word;
begin               
lpicono := 1; // el primer icono que haya, si es un ejecutable o dll puede tener muchos.
icono.Handle:=ExtractAssociatedIcon(handle,pchar('c:\autoexec.bat'),lpicono);
Que te devuelve un icono y puedes anadirlo a un ImageList.

saludos

Última edición por Lepe fecha: 14-10-2004 a las 15:17:26.
Responder Con Cita