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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2015, 09:05   #1
PaHaNjkee
Delphi 10 Seattle
Пользователь
 
Аватар для PaHaNjkee
 
Регистрация: 01.11.2010
Сообщений: 90
По умолчанию Размещение большого кол-ва картинок на форме

Здравствуйте, друзья. Интересует такой вопрос. Как лучше всего загрузить на форму большое кол-во картинок (смайлы). Их около 800. Создавать 800 компонентов Image? Или ImageList и 800 SpeedButton (к примеру). Спасибо за ответ
PaHaNjkee вне форума Ответить с цитированием
Старый 12.05.2015, 09:45   #2
PaHaNjkee
Delphi 10 Seattle
Пользователь
 
Аватар для PaHaNjkee
 
Регистрация: 01.11.2010
Сообщений: 90
По умолчанию

Решил свою проблему, загружаем картинки в ImageList, далее прорисовываем в ListView. Теперь вопрос такой, как очистить память от всех картинок?
Код:
var
  Item: TListItem;
  ts: TStringList;
  tsr: TSearchRec;
  i: integer;
begin
  ts := TStringList.Create;
  if FindFirst('smiles/' + '*.png',faAnyFile,tsr) = 0 then
  repeat
    ts.Add(tsr.name);
  until FindNext(tsr) <> 0;
  FindClose(tsr);
  for i := 0 to ts.Count-1 do
  begin
    ImageList1.LoadFromFile('smiles/'+ts[i]);
    Item := ListView1.Items.Add;
    Item.Caption := '&#'+Copy(ts[i], 0, Pos('.', ts[i]))+';';
    Item.ImageIndex := i;
  end;
  ts.Free;
PaHaNjkee вне форума Ответить с цитированием
Старый 12.05.2015, 09:50   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

ImageList по идее умеет это. У него есть метод Clear.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.05.2015, 09:57   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А зачем очищать программно? ListView перестанет прорисовывать. Уничтожение формы очистит.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.05.2015, 10:02   #5
PaHaNjkee
Delphi 10 Seattle
Пользователь
 
Аватар для PaHaNjkee
 
Регистрация: 01.11.2010
Сообщений: 90
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А зачем очищать программно? ListView перестанет прорисовывать. Уничтожение формы очистит.
В том то и дело, форма у меня временная, т.е. я её открываю, картинки загружаются, я выбираю и она мне больше не нужна. Зачем забирать лишних 10МБ памяти?
PaHaNjkee вне форума Ответить с цитированием
Старый 12.05.2015, 10:06   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

ListView перестанет прорисовывать. В него выбор по индексу при прорисовке и сама картинка в нем не хранится
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.05.2015, 10:42   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
картинки загружаются
А ты не загружай все смайлы. Загружай их по мере появления в тексте.
или это у тебя список смайликов?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Размещение картинок на странице Shouldercannon HTML и CSS 10 29.01.2014 14:36
Размещение элементов на форме Rom1k06 Общие вопросы .NET 1 26.03.2013 10:56
Размещение картинок в тексте. Список литературы. elanorka Microsoft Office Word 7 06.11.2012 00:53
Добавление большого количества картинок в примечания Олег83 Microsoft Office Excel 0 30.01.2012 15:43
Обработка большого кол-ва текстовых данных (Excel 2010) motorway Microsoft Office Excel 9 27.03.2010 00:47