Ver Mensaje Individual
  #14  
Antiguo 17-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Reputación: 19
MaMu Va por buen camino
Cita:
Empezado por lag_0 Ver Mensaje
Claro, solo has de manejar la imagen que pinta, apartir de ese codigo (muy bueno por cierto) no es demasiado complicado, o siempre puedes dibujar en on draw item...
Lo que pasa es que con GetSystemImage lo que obtengo es el ícono asociado a la extensión del archivo:

Código Delphi [-]
procedure TMainForm.GetSystemImages;
const
 shgfiLarge = SHGFI_SYSICONINDEX or SHGFI_LARGEICON;
  shgfiSmall = SHGFI_SYSICONINDEX or SHGFI_SMALLICON;
var
 ShFileInfo: TShFileInfo;
 iLarge: Cardinal;
  iSmall: Cardinal;
begin
 iLarge := ShGetFileInfo('', 0, ShFileInfo, SizeOf(ShFileInfo), shgfiLarge);
  iSmall := ShGetFileInfo('', 0, ShFileInfo, SizeOf(ShFileInfo), shgfiSmall);
 ListView_SetImageList(lvwFiles.Handle, iLarge, LVSIL_NORMAL);
 ListView_SetImageList(lvwFiles.Handle, iSmall, LVSIL_SMALL);
end;

Modo Virtual (OwnerData:=True)

Ahora bien, según interpreto el código expuesto por roman, el dato importante para trabajar con el ListView es el Item.Index, es el principal, en base a la lista creada con los elementos (la cantidad la muestro con AllocBy)
en el evento OnData, cargo los nombres de cada elemento (Item.Caption).
Para dibujar un thumbnail de cada elemento tendría mi código en:

Código Delphi [-]
 
procedure TMainForm.lvwFilesDrawItem(Sender: TCustomListView;
  Item: TListItem; Rect: TRect; State: TOwnerDrawState);
begin
end;

Pero que pasa con la propiedad OwnerDraw?.
En el evento OnDrawItem tendría que:

1. Generar el thumbnail del elemento
2. Dibujar el thumbnail del elemento
3. OwnerDraw True

es correcto?

Como sería un ejemplo de generar un thumbnail de un elemento de la lista y agregarlo al ListView?

PD: me resulta muy interesante todo este tema ya que, me gustaria generar un componente derivado del TShellListView, por el solo hecho de añadirle la propiedad ViewStyle [vsThumbs] + [ vsIcon, vsList, vsReport, vsSmallIcon]
y poder visualizar como Thumbnails, estilo Explorardor de Windows

Saludos y gracias
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;

Última edición por MaMu fecha: 17-04-2008 a las 00:10:46.
Responder Con Cita