Bueno, yo no dije ke no me servia, mi objetivo era saber si alguien lo podia volver a explicar, estoy aprendiendo, no me pongo límites de "esto es demasiado difícil" pero bueno... Ya he encontrado una buena forma!!! Y Breve!
Aquí la pongo:
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
FInfo: TSHFileInfo;
Icon: TIcon;
i: Integer;
begin
ImageList1.Handle := SHGetFileInfo('C:\',0,FInfo,SizeOf(TSHFileInfo),SHGFI_SMALLICON or SHGFI_SYSICONINDEX);
Icon := TIcon.Create;
ImageList1.GetIcon(FInfo.iIcon,Icon);
for i := 0 to ImageList1.Count do
begin
ListView.Items.Add.Caption := IntToStr(i);
ListView.Items.Item[i].ImageIndex := i;
end;
end;
Provando este código me di cuenta de que se crean 5 items siempre que encuentra el archivo solicitado en SHGetFileInfo, y el icono correspondiente a ese archivo está en el ítem nº 4... Así que ahora solo queda hacer un par de cosilla y ya está... pero esto no termina de solucionarme el problema, pues este código no me sirve para coger el icono de un ordenador remoto (como por ejemplo un servidor ftp). Es una lástima, pero bueno... Alguien sabe si se podria hacer algo para remediar esto?