Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Смена иконки в exe


Автор: klyaksa 17.8.2011, 14:10
Взял функцию:
Код

function AddResource(FileName, ResName: string; Buf: pointer; Size: integer): integer;
{* Добавляет данные в RC_DATA. На входе:
   FileName - имя файла с ресурсами (exe, dll и т.п),
   ResName  - имя ресурса (ОБЯЗАТЕЛЬНО! заглавными латинскими буквами),
   Buf      - указатель на блок данных, Size - размер блока данных.
   На выходе - 0, если все Ok, либо номер ошибки Windows }
var
  Hnd: THandle;
begin
  Hnd := BeginUpdateResource(PChar(FileName), false);
  if Hnd=0 then begin
    result := GetLastError; Exit;
  end;
  if UpdateResource(Hnd, RT_RCDATA, PChar(ResName), 1049, Buf, Size) then
    result := 0
  else result := GetLastError;
  EndUpdateResource(Hnd, (result<>0));
end;

С ней всю хорошо, в RCDATA все меняется хорошо... попробовал переделать ее чтобы менять иконку
  if UpdateResource(Hnd, RT_ICON, PChar('MAINICON'), 1049, AMemoryStream.Memory,AMemoryStream.Size) then
В AMemoryStream  загружаю из файла иконку.

Ничего не получается - иконка не меняется. Не пойму в чем проблема.

п.с. сторонних библиотек (тут на форуме одна описывается) не хочу.

Автор: Vaskevych 30.8.2011, 23:30
Лови, разберешься !!!! 
В примере все есть когда то делал себе.


Относительно сторонних библиотек тебя никто не заставляет их использовать, но посмотреть принцип роботы это на пользу ))))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)