Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2017, 06:47   #1
Larboss
Недо
Участник клуба
 
Регистрация: 11.08.2011
Сообщений: 1,394
По умолчанию Замена ICO в исполнительном файле из потока

Доброго дня!

Стоит задача заменить иконку в exe - файле из TImage. Т.е имеем

Цитата:

// Загружаем иконку в Image2 из файла
Image2.Picture.LoadFromFile(OpenDia log2.FileName);

// Создаем поток для хранения иконки
MemoryStream := TMemoryStream.Create;

// Сохраняем иконку в поток
Image2.Picture.Icon.SaveToStream(Me moryStream);

hInst := BeginUpdateResource(PwideChar(Form1 .Edit2.Text), False);
hLibrary := LoadLibrary(PWideChar(Form1.Edit2.T ext));
if hInst > 0 then
begin
dwIndex := 1;

// Проверяем наличие иконок
while FindResource(hLibrary, MAKEINTRESOURCE(dwIndex), RT_ICON) > 0
do begin
// Делаем изменения, записываем иконку в ресурсы
UpdateResource(hInst, RT_ICON, MAKEINTRESOURCE(dwIndex), 1033, MemoryStream.Memory, MemoryStream.Size);
inc(dwIndex);
end;
FreeLibrary(hLibrary);
// Применяем изменения
EndUpdateResource(hInst, False);
end;

end;
Вроде бы все нормально, все иконки заменяются. Но, само изображение иконки у exe пропадает и смотря в любом редакторе ресурсов видно, что все иконки не имеют изображения. Данные есть, размер есть, запись есть. Что я забыл?
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
Larboss вне форума Ответить с цитированием
Старый 06.11.2017, 03:27   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Не всякую картинку можно сделать иконкой.
northener вне форума Ответить с цитированием
Старый 07.11.2017, 01:50   #3
Larboss
Недо
Участник клуба
 
Регистрация: 11.08.2011
Сообщений: 1,394
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Не всякую картинку можно сделать иконкой.
Я беру одну и ту же картинку. Метод замены, основанный на загрузке файла работает, а вот этот метод с потоком не работает. Ну, т.е. иконка почему-то становится не рабочей. Хотя она не меняется.
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
Larboss вне форума Ответить с цитированием
Старый 09.11.2017, 12:00   #4
Larboss
Недо
Участник клуба
 
Регистрация: 11.08.2011
Сообщений: 1,394
По умолчанию

Никто не сталкивался с этим вопросом никогда?
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
Larboss вне форума Ответить с цитированием
Старый 09.11.2017, 14:10   #5
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Вот как-то никогда не приходилось править иконки прямо в exe..
Но что же мешает открыть ресурс и сравнить, что именно пошло не так?
Black Fregat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
замена в большом файле iworm2009 Общие вопросы Delphi 6 24.06.2014 20:47
Замена строки в файле Bubel C# (си шарп) 1 17.11.2011 22:38
Замена строки в файле - C tools Помощь студентам 1 20.12.2010 01:39
Замена символа в файле Spandei Общие вопросы C/C++ 1 14.05.2010 08:21
Замена строки в файле blacknotblack Общие вопросы .NET 3 13.03.2010 12:09