Entwickler-Ecke

Multimedia / Grafik - 16x16 Icon aus *.ico extrahieren


FriFra - Mo 28.10.02 14:33
Titel: 16x16 Icon aus *.ico extrahieren
Wie bekomme ich nur das 16x16 Icon aus einer *.ico datei die mehrere Formate enthällt?


Maggi - Mo 28.10.02 15:50

Hallo FriFra,

mit dem Bildeditor unter den Delphitools kannst du es am einfachsten,....öffnen, gewünschtes ICOn ausschneiden und in einem neuen 16x16 Icon einfügen. Fertig!!! :wink:

Gruß

Maggi


FriFra - Mo 28.10.02 19:03

Das meinte ich nicht, ich will zur Laufzeit aus einem ausgewählten Icon das 16x16 haben. Wenn ich das Icon einfach in ein Image lade, wird immer das 32x32 genommen. Ausserdem kann dieser rudimentäre Bildeditor keine Truecolor-Icons mit tranparenten Schatten.

Ich habe es aber selber rausbekommen:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var
  SmallIcon: HIcon;
  Icon: TIcon;
begin
  if OpenPictureDialog1.Execute then
  begin
    SmallIcon := 0;
    Icon := TIcon.Create;
    ExtractIconEx(PChar(OpenPictureDialog1.FileName), 0, nil,
      SmallIcon, 0);
    Icon.Handle := SmallIcon;
    Image1.Picture.Icon.Assign(Icon);
    Icon.Free;
  end;
end;