Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не сохраняется иконка программы в файл [D7, WinXP]


Tapok ©   (2005-12-16 14:34:00) 

Ни одна функция не возвращает ошибки, но сохраняемый файл не содержит иконки.
Длина файла всегда равна 20-ти байтам. Что здесь неправильно?

procedure TForm1.Button1Click(Sender: TObject);
var
 hResInfo,hResData,hF: THandle;
 pData: Pointer;
begin
 hResInfo := FindResource(hInstance,'MAINICON',RT_GROUP_ICON);
 hResData := LoadResource(hInstance,hResInfo);
 if hResData <> 0 then
 begin
   pData := LockResource(hResData);
   if pData <> NIL then
   begin
     hF := FileCreate('c:\MainIcon.ico',fmOpenWrite);
     FileWrite(hF,pData^,SizeOfResource(hInstance,hResInfo));
     FileClose(hF);
   end;
 end;
end;

Спасибо за помощь!


Tapok   (2005-12-16 15:54:00) [1]

clickmaker ©   (16.12.05 15:33) [8]

Спасибо. Буду разбираться.


clickmaker   (2005-12-16 15:33:00) [2]

может это прольет свет?
http://almar.net.ru/a/kpk?id=1127795003&n=7


Tapok   (2005-12-16 15:04:00) [3]

hResInfo := FindResource(hInstance,'MAINICON',RT_ICON);
ShowMessage(SysErrorMessage(GetLastError));

Указанное имя ресурса не найдено в файле образа


Tapok   (2005-12-16 15:02:00) [4]

clickmaker ©   (16.12.05 14:59) [4]

может RT_ICON?


Сейчас попробую, но вроде RT_GROUP_ICON...


Tapok   (2005-12-16 15:01:00) [5]

Reindeer Moss Eater ©   (16.12.05 14:54) [3]

Если нужна икона приложения, то почему просто через Application.Icon не попробовать?


Нашел пример на С с ипользованием API и решил перевести все это на Delphi ради интереса...


clickmaker   (2005-12-16 14:59:00) [6]

может RT_ICON?


Reindeer Moss Eater   (2005-12-16 14:54:00) [7]

Возможно используешь не те функции для работы с конкретным типом ресурсов. Если нужна икона приложения, то почему просто через Application.Icon не попробовать?


Tapok   (2005-12-16 14:52:00) [8]


Reindeer Moss Eater ©   (16.12.05 14:36) [1]

Ни одна функция не возвращает ошибки

Откуда это видно?


После вызова каждой функции я вставлял проверку
ShowMessage(SysErrorMessage(GetLastError)); из этого кода я ее убрал.


Reindeer Moss Eater   (2005-12-16 14:36:00) [9]

Ни одна функция не возвращает ошибки

Откуда это видно?


Наверх

Титульная страница Поиск, карта сайта Написать письмо