Re[3]: А это не WinAPI ли часом? (-)
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 28.01.03 11:26
Оценка:
Здравствуйте, alexnmsk, Вы писали:

A>Судя по всему WinApi класса TIcon не понимает. Хотя если поможете решить задачу средствами Api буду оч признателен. В принципе тремуется извлечь определенную иконку из файла (dll, ico и т.д.), как большую так и маленькую и каждую сохранить в файле ico без потери качества.

A>Такое возможно?

Вполне

1. Читаем доку по ExtractIconEx...
2. Извлекаем иконки из файла с помощью этой функции.
3. Создаем экземпляр класса TIcon.
4. Делаем следующее:


TIcon* icon = new TIcon;

DWORD CountIcons = (DWORD) ExtractIconEx("C:\\Test.exe",-1,NULL,NULL,0);

if(CountIcons != NULL)
 {
  HICON* iconLarge = new HICON[CountIcons];
  HICON* iconSmall = new HICON[CountIcons];

   if(ExtractIconEx("C:\\Test.txt",0, iconLarge, iconSmall,CountIcons))
     {
      String sFileName = "C:\\"; 
       for(int i=0;i<CountIcons;i++)
        {
          icon->Handle = iconLarge[i];
          icon->SaveToFile(sFileName + "large" + IntToStr(i) + ".ico");
          DestroyIcon(iconLarge[i]);

          icon->Handle = iconSmall[i];
          icon->SaveToFile(sFileName + "small" + IntToStr(i) + ".ico");
          DestroyIcon(iconSmall[i]);


        } // for
     } // if

 delete [] iconLarge;
 delete [] iconSmall;

 } // if

delete icon;


В общем, где-то так... Код не компилил и не проверял — писал навскидку... Так чта все равно TFM на всякий случай...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.