Функция ExtractIcon позволяет извлечь иконку из exe, dll и ico-файлов. Если
указанная иконка отсутствует, функция возвращает 0. Количество иконок,
содержащихся в файле, можно узнать, указав в качестве последнего параметра –1. uses ShellAPI;
procedure TForm1.Button1Click(Sender: TObject); var ic: TIcon; i, count: integer; w: integer; begin if OpenDialog1.Execute = false then Exit; Form1.Canvas.FillRect(Form1.Canvas.ClipRect); count := ExtractIcon(Application.Handle, PChar(OpenDialog1.FileName), -1); ic := TIcon.Create; w := Form1.Width div 32; for i := 0 to count - 1 do begin ic.Handle := ExtractIcon(Application.Handle, PChar(OpenDialog1.FileName), i); Form1.Canvas.Draw(32 * (i mod w), 32 * (i div w), ic); end; ic.Destroy; end;
|