Как получить иконку, ассоциированную с определённым типом файлов?

Delphi FAQ >> Операционная система

Данная функция, написанная на Delphi, позволяет получить иконку, ассоциированную с определенным типом файлов (такие иконки отображаются, например, в Проводнике).

Uses ShellApi;

function GetAssociatedIcon (const AExtension:String; ASmall: Boolean): HIcon;
var
  Info: TSHFileInfo;
  Flags: Cardinal;
begin
  if ASmall then
    Flags := SHGFI_ICON or SHGFI_SMALLICON or SHGFI_USEFILEATTRIBUTES
  else
    Flags := SHGFI_ICON or SHGFI_LARGEICON or SHGFI_USEFILEATTRIBUTES;
  SHGetFileInfo (PChar(AExtension), FILE_ATTRIBUTE_NORMAL, Info, SizeOf(TSHFileInfo), Flags);
  Result := Info.hIcon;
end;

Пример использования (на форме находятся кнопка TButton и диалог открытия файлов TOpenDialog):
procedure TForm1.Button1Click(Sender:TObject);
begin
  if OpenDialog1.Execute then
    Form1.Icon.Handle := GetAssociatedIcon(ExtractFileext(Opendialog1.FileName), False);
end;


продвижение сайтов