Auch wenn du es genauso machst wie gezeigt? Der Code ist seit Jahren über mehrere Compiler im Einsatz. Immer "Transparente" Icons.
Ich habe soeben, nur um der Sache auf den Grund zu gehen, ein frisches Demo erstellt mit dem Ergebnis, wenn ich Deinen Code verwende, so wie Du in abgebildet hast, hab ich gar kein Icon sichtbar, das ist mir etwas zu viel transparenz.
Ich frage mich auch wozu Du eine ImageList erstellst wenn sie im Code keine Verwendung hat.
Code:
var ImageList: TImageList; // ok, wir reservieren uns einen namen
...
ImageList:=TImageList.Create(nil); // okay, nun haben wir etwas zum benutzen vorbereitet
...
ListView1.SmallImages:=ImageList; // okay, listview erhält diese Liste für SmallImages
...
with ListView1.Items.Add do
begin
Caption:=ExtractFileName(FileName);
...
ImageIndex:=sfi.iIcon; // hmmm, wozu ImageList wenn hier direkt was übergeben wird?
end;