- 0
Освобождение памяти. И перерисовка Tcolumn.
-
Похожий контент
-
- 7 ответов
- 3 469 просмотров
-
- 6 ответов
- 2 871 просмотр
-
- 2 ответа
- 2 120 просмотров
-
- 9 ответов
- 2 942 просмотра
-
[Статья] Что нового в TImageList (RAD Studio 10.1 Berlin)
От RoschinSpb,
- TImageList
- ImageList
- (и ещё 3 )
- 0 ответов
- 2 453 просмотра
-
- 5 ответов
- 4 185 просмотров
-
- 1 ответ
- 7 625 просмотров
-
-
Последние посетители 0 пользователей онлайн
- Ни одного зарегистрированного пользователя не просматривает данную страницу
Вопрос
Володимир Антонашко
Здраствуйте.
В программе я заполняю Tgrid изображениями из Imagelist по имени фото который есть в ячейке . Код :
if column.index = 8 then //Загрузка картинок. if not value.IsEmpty then begin column.BeginUpdate; i:=StrToInt(maingr.Cells[column.Index,row]); imageindex:=main_form.ImageList1.Source.IndexOf(IntToStr(i)); column.Canvas.Clear(RowColor.Color); main_form.ImageList1.draw(column.Canvas,bounds,imageindex,100); column.EndUpdate; end;
Если я уберу очистку канвы то изображения накладуються. А так как есть следующий раз при вызове DrawColumnCell изображение остается только в последней записи.
Но такой код в процедуре SelectCell нормально отображает изображение. На каждый вызов. Даже если изображение в ячейке нету.
if acol = 8 then begin i:=maingr.Cells[Acol,Arow]; imageindex:=main_form.ImageList1.Source.IndexOf(i); imageviewer1.Bitmap.Clear(TAlphaColors.Null); imageviewer1.Bitmap:=main_form.ImageList1.Bitmap(size,imageindex); end;
И по поводу памяти. Как я понял, после того как я присвою изображение ячейке, оно загружается в память. Также когда отображается в ImageViewer.
Но после удаления строки с изображениям, память остается занята для уже использованных изображений. То есть при повторном показе память больше не занимается и используется изображение которое было ранее загружено. Думаю это нормальное поведение. Так увеличивается скорость работы программы. Но я собираюсь показывать до 50 фотографий одновременно (средний размер 1мб) из 5-10 тисяч. И мне нужно чтоб после использования изображений память очищалась, иначе программа будет кушать под 10гб оперативной памяти.
Ссылка на комментарий
10 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.