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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2015, 19:47   #1
garuna
Форумчанин
 
Аватар для garuna
 
Регистрация: 13.04.2013
Сообщений: 180
По умолчанию ImageList.AddIcon и "Out of system resources"

Добрый вечер!

Возникла такая проблема. Добавляю в ImageList иконки следующим образом:

Код:
function GetIconEx(num: integer): TIcon;
begin
 Result:= TIcon.Create;
 Result.LoadFromFile('C:\'+IntToStr(num)+'.ico');
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
 ico: TIcon;
begin
 ico:= GetIconEx(Random(10));
 try
  imgL.AddIcon(ico);
  showmessage('ok');
 finally
  FreeAndNil(ico);
 end;
end;
Заметил, что если иконка содержит значки нескольких размеров (16x16, 32x32, 64x64 и т.д.), то при загрузке всегда получается ошибка "Out of system resources". Собственно вопрос - каким образом проверить перед загрузкой мультиразмерна ли иконка и если да, то извлечь из нее самую наименьшую (16x16) ?

--
для примера:
Мультиразмерная иконка: https://mail.ru/favicon.ico
Обычная иконка: http://programmersforum.ru/favicon.ico
garuna вне форума Ответить с цитированием
Старый 21.03.2015, 22:04   #2
DIONISKA
Форумчанин
 
Регистрация: 07.11.2011
Сообщений: 161
По умолчанию

Помню то-же как-то заморачивался, решилось всё просто, через ExtractIconEx(модуль ShellApi):
Код:
var
ico:ticon;
smallico,bigico:hicon;
begin
ico:=ticon.Create;
ExtractIconEx(('c:\favicon.ico'),0,bigico,smallico,1);
  ico.Handle:=smallico;
  imagelist1.AddIcon(ico);
  ico.Free;
end;
DIONISKA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необработанное исключение типа "System.ArgumentException" в System.Drawing.dll Ribul C# (си шарп) 12 19.11.2014 20:00
System.Windows.Forms.Button" не содержит определение для "Color". Вэйлинк C# (си шарп) 2 04.11.2014 12:15
Необработанное исключение типа "System.ArgumentException" в System.Data.dll max_prorok Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 3 23.09.2014 09:45
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" Alexsandrr Microsoft Office Excel 4 19.10.2013 14:22
Как работает system("copy \"C:\\1\"")? Alena-b-v Общие вопросы C/C++ 4 01.09.2010 17:27