wm-help.net -> Электронная библиотека -> Delphi -> Вопросы и Ответы по Delphi -> Вопрос и Ответ 21 -> Версия для печати

Вопрос и Ответ 21

Вопрос и Ответ 21

Вопросы и Ответы


      21. Как получить иконку из .EXE или .DLL файла?

      Процесс получения иконок из .EXE, .DLL или .ICO файлов полностью идентичен. Различие только в том, что в .ICO файле может храниться только одна иконка, а в .EXE и .DLL несколько. Для получения иконок из файлов, в модуле ShellAPI, есть функция:

      function ExtractIcon(Inst: THandle; FileName: PChar; IconIndex: Word): HIcon;

      где

        Inst - указатель на приложение вызвавшее функцию,
        FileName - имя файла из которого необходимо получить иконку,
        IconIndex - номер необходимой иконки.

      Если функция возвращает значение не равное нулю, то в файле есть следующая иконка.

      Пример:

      В данном примере в компонент Image1 выводится иконка запущенного файла.

      ............

      USES ShellAPI;

      ............

      procedure TForm1.FormCreate(Sender: TObject);
      VAR A: ARRAY [0..78] OF Char;
      begin

        {Получение имени запущенного файла}
        StrPCopy(A, ParamStr(0));
        {Вывод на экран нулевой иконки из файла}
        Image1.Picture.Icon.Handle := ExtractIcon(HInstance, A, 0);

      end;

      ............


...предыдущая страница следующая...
оглавление

Rambler's Top100