powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как правильно загрузить PNG из DLL в ImageList?
6 сообщений из 6, страница 1 из 1
Как правильно загрузить PNG из DLL в ImageList?
    #40049133
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то нифига не выходит. Вот что я делаю не так?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
var
  H: THandle;
  i: Integer;
  Png: TPngImage;
  Bmp: TBitmap;
begin
 H := LoadLibrary(PWideChar(ChangeFileExt(ParamStr(0), '.dll')));
 for i := 0 to 32
 do begin
    Png := TPngImage.Create;
    Png.LoadFromResourceName(H, 'PngImage_'+IntToStr(i)); //Затыкается тут - The png image could not be loaded from the resource ID.
    Bmp := TBitmap.Create;
    Bmp.Assign(Png);
    ImageList.Add(Bmp, Bmp);
    Bmp.Free;
    Png.Free;
    end;
 FreeLibrary(H);
end;


Ресурс с таким именем там точно есть.
...
Рейтинг: 0 / 0
Как правильно загрузить PNG из DLL в ImageList?
    #40049137
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страдалецъ
Ресурс с таким именем там точно есть.
Может тип ресурса не совпадать. Нужен вроде RCDATA.

P.S. Хотя ошибка говорит о том, что по идентификатору ресурса типа вообще нельзя пнг грузить. Но, может, это по этому идентификатору ресурса - неточная ошибка.
...
Рейтинг: 0 / 0
Как правильно загрузить PNG из DLL в ImageList?
    #40049138
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я посмотрел, что у меня в dll лежит через редактор ресурсов, показывает что лежит набор png-файлов, тип ресурса RCData и картинки
отображаются нормально. Возникла мысль, что я с регистром в названии ресурса накосячил, замена ничего не дает - та же ошибка.
...
Рейтинг: 0 / 0
Как правильно загрузить PNG из DLL в ImageList?
    #40049139
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Черт, вот я слепошарый, я цикл задаю с 0, а не с 1 и такого ресурса там действительно нет. Теперь другая ошибка "Invalid image size."
С чего-бы это? Буду дальше копать.
...
Рейтинг: 0 / 0
Как правильно загрузить PNG из DLL в ImageList?
    #40049147
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оказывается картинки должны иметь одинаковые размеры сторон, а не только одну. Видимо при ручном добавлении там происходит фоновая предобработка картинки до одинаковых размеров сторон.
...
Рейтинг: 0 / 0
Как правильно загрузить PNG из DLL в ImageList?
    #40049182
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то им достаточно иметь одинаковый размер, квадратность не требуется:
https://docs.microsoft.com/en-us/windows/win32/controls/image-lists

PS: Но дельфийская обёртка может иметь свой собственное мнение. Особенно если используется с тулбаром, где кнопки таки да, обязаны быть квадратными.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как правильно загрузить PNG из DLL в ImageList?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]