Thema: Delphi Systemicons und Listview

Einzelnen Beitrag anzeigen

Benutzerbild von Thunderchild
Thunderchild

Registriert seit: 12. Nov 2003
Ort: Nohra
139 Beiträge
 
Delphi 7 Personal
 
#22

Re: Systemicons und Listview

  Alt 1. Jun 2004, 14:31
Ich habe gestern den ganzen Tag Codeschnipsel und Beiträge hier zu diesem Thema gelesen, weil ich in meinem FTP-Client gern Windows-Icons für die FTP-Liste nehmen möchte. Aber das Höchste, was ich bis jetzt als Index aus GetFileInfo gekriegt habe, ist 2. Das heißt, bis jetzt habe ich nur OverlayIcons zu sehen bekommen. Bitte sag mir einer, was hier falsch ist. Es ist übrigens ein MDI-Programm. Die Imagelist für die Systemicons ist im Hauptformular, die Listenansicht befindet sich auf dem jeweiligen MDIchild.

OnCreate des Hauptformulars:
Delphi-Quellcode:
var hIl:HIMAGELIST;
    fi:TSHFileInfo;
begin
  hIl:=HIMAGELIST(SHGetFileInfo('',0,fi,sizeof(fi),
       SHGFI_SYSICONINDEX or SHGFI_SMALLICON));
  if(hIl<>0) then ilShellIcons.Handle:=hIl;
  // ShareImages ist schon zur Entwurfszeit auf true gesetzt
  // [...]
end;
Die Prozedur, die den ListView füllt:
Delphi-Quellcode:
procedure RefreshList;
var fi:TSHFileInfo; Item:tListItem;
begin
  // [...]
  // Programmeinstellung: Windows-Icons verwenden?
  if fm.Settings.FTPicons=2 then begin
    ZeroMemory(@fi,sizeof(TSHFileInfo)); // brauche ich das überhaupt jedes mal?

    // l ist vom Typ TidListItems, also das Listing des akt. Verzeichnisses.
    SHGetFileInfo(PChar('c:\'+l[i].FileName),0,fi,SizeOf(fi),
                  SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
    Item.ImageIndex:=fi.iIcon;
  end
end;
Das letzte Schöne, das in C geschrieben wurde, war Schuberts 9. Sinfonie.
Meine Softwareseite (Link aktualisiert am 13.12.2006).
  Mit Zitat antworten Zitat