// Ab Windows 7 lassen sich Icons aus ICL-Dateien nicht mehr mit normalen
// Mitteln auslesen (16 Bit DLL). Deshalb hier der nachfolgende Code, für
// den Sie die Unit "UnitICL" hier downloden müssen. Die Funktionen
// und Prozeduren dieser Unit stammen zu 98% von Jan Peter Stotz aus dem
// Jahr 1999. Das Ganze funktioniert natürlich auch unter XP.


// Getestet mit D4 unter XP und W7
 

uses UnitICL; 
 
// Namen der Icons einer ICL-Datei auflisten 
// (Listbox und Opendialog auf Formular Voraussetzung) 
 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  if not OpenDialog1.execute then exit; 
  if not GetIconNames(OpenDialog1.Filename, Listbox1.items) 
    then showmessage('FEHLER'); 
end; 
 
// Anzahl der Icons in einer bestimmten Datei anzeigen 
 
procedure TForm1.Button2Click(Sender: TObject); 
begin 
  label1.caption := 'Icon-Anzahl = ' + inttostr(GetIconNumber('C:\Buecher.icl')); 
end; 
 
// Alle Icons auslesen (Imagelist auf Formular Voraussetzung) 
 
procedure TForm1.Button3Click(Sender: TObject); 
var 
  i: integer; 
begin 
  i := GetAllIcons('C:\Buecher.icl', ImageList1); 
  showmessage(inttostr(i) + ' Icon(s) geladen'); 
end; 
 
// Einzel-Icon ermitteln (Hier das Vierte; Zählung beginnt bei 0) 
 
procedure TForm1.Button4Click(Sender: TObject); 
var 
  h: HIcon; 
begin 
  h := GetOneIcon('C:\Feuer.icl', 3); 
  if h = 0 then showmessage('FEHLER') else 
    DrawIconEx(Canvas.Handle, 10, 10, h, 32, 32, 0, 0, DI_NORMAL); // z.B. 
end;
 



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke