• 0
Сергей Сергеев

картинки не отрисовываются из ImageList

Вопросы

Привет всем!

Поймал такой глюк - пока только на одном устройстве - Samsung gt i9505 andr 4.2.2 - ядро 3.4.0, на десятке других не замечено.

Delphi Seattle 6.1 b 7601 - win 7 - 64  Android SDK 25.2.2.-32 bit

Создал форму, на нее кнопку , ImageList - загрузил одну иконку 32*32 

из 10 запусков - один с картинкой на кнопке , 9 - без.. причем она вроде есть.. но как марево из точек..

тоже самое с Glyph ( добавил), а в TImage ( добавил) - где изображение загружено напрямую в битмап - все ок.

Что делать - как обойти?Спасибо всем заранее..

Спойлер


Form.jpg

IL.jpg

IMG_20161216_145627.jpg

IMG_20161216_150341.jpg

IMG_20161216_150341.jpg

 

 

Изменено пользователем Сергей Сергеев
спойлер

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 ответов на этот вопрос

  • 0

заметил, что те ImageList что указаны в DesignTime - "портятся" как то.. сделал по кнопке переключение на другой ИмаджЛист, и обратно на тот что в десигн указан..

картинки то есть, то марево..

отцепил первый от Десигн.. т.е. оба болтаются не пристегнутые к Контролам, теперь по переключающей кнопке - показывает оба - то один, то другой.. все ок..

но рано радовался - при "сворачивании" - кнопкой домой и разворачивании портится оба Листа и перестают отприсовываться.. похоже, что для хранения картинок используется какая то общая память.. которую трут все кому не лень..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 20.12.2016 в 11:05, Brovin Yaroslav сказал:

На лицо баг с графическим контекстом. Я бы проверил на берлине.

В Берлине с картинками все ок, но пошли проблемы с получением данных с SQL Servera ( DataSnap) .. уж и не знаю что лучше.. :) тут сдавать надо.. в Сиетле с картинками никак не решить?

Вот такая ошибка идет с сервера (это я и сервер в берлине перекомпилил.. ) при открытии Open на клиенте клиентского TClientDataset.. при этом в WIN версии этого же  приложения - все работает..

пс. качаю Berlin UpDate 2. может там получше

пспс - В Berlin UpDate 2. - datasnap заработал..надеюсь  и картинки будут на месте - завтра проверю. как все тонко - аш страшно.. :)

пспспс - да все заработало, и картинки и Datasnap на "подозрительном" Samsung S4. правда есть другие глюки странные.. позже сформулирую в другой теме.

.

 

Спойлер

Screenshot_20161220-173434.jpg

 

Изменено пользователем Сергей Сергеев
+ скрин шот, описание, результат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Сергей, добрый день!

Удалось ли Вам решить проблему с отображением картинок?

Обнаружил проблему в Андроиде и с другими Битмапами: при сворачивании кнопкой "Домой", открытии  другого приложения, где есть графика; разворачивании приложения снова - картинки в битмапе пропадают...

У меня - Берлин 10.1

photo_2017-02-14_19-59-56.jpg.44d9885f433f7991cea0f678628843ff.jpg

photo_2017-02-14_20-00-10.jpg.1814df416ca00d7839712f26f3ef7a6a.jpg

Изменено пользователем ra.eremeev

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
4 минуты назад, ra.eremeev сказал:

Сергей, добрый день!

Удалось ли Вам решить проблему с отображением картинок?

Обнаружил проблему в Андроиде и с другими Битмапами: при сворачивании кнопкой "Домой", открытии  другого приложения, где есть графика; разворачивании приложения снова - картинки в битмапе пропадают...

У меня - Берлин 10.1

 

 

привет, у меня картинки не пропадали целиком, а "рассыпались" - кое какие точки оставались.. этакий муар, было только в TGlyph а в TImage - все ок, и на одном телефоне поймал только.. переход на Берлин апд -  2 - решило проблему

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Понял.

Значит, будем надеяться на Ярослава: баг поймал на FGX.FlipView :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

 

3 часа назад, ra.eremeev сказал:

картинки в битмапе пропадают...

У меня - Берлин 10.1

Так в Битмапе или TImageList? Сделайте тестовый пример и направьте в QC. Баги обсуждать здесь бесполезно, т.к. ни кто уже не является работником Embarcadero.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Проблема проявилась с Битмапом. Пробовал решить через костыль с предварительной прогрузкой изображений в TImageList и загрузкой уже оттуда, но тоже действия не возымело :(

Поэтому я в этой ветке обсуждений и оказался :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Кстати я тоже заметил проблему когда портятся картинки в TimageList . Проблема возникает когда часто пользуешься ImageList в Design Time. 

Стоит Berlin Update 2

На них возникают какие то артефакты, типа решетки, или муара. И все, она сохраняется такой в ImageList, и в следующие разы нужно заменять картинку полностью. 

Не знаю как это решить. Мне пришлось даже заменять некоторые иконки на совсем другие, к примеру на прикрепленной ниже иконке через время появляется решетка на синем фоне.

Groups48.png

 

Изменено пользователем ENRGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От geotub
      Уважаемые знатоки! Здравствуйте!
      с FMX дружу плохо! Задача тривиальная прошу помощи!
      есть соединение с MYSQL через Bind Visual привязан к StringGrid, данные отображаются идеально все хорошо!
      Задача слеждующая:
      - есть колонка "status" со значениями от 0 до 10 
      - есть imageList с картинками в таком же диапазоне 
      Необходимо в StringGgrid вместо значений выводить картинку из imageList равную значению (значение 3 = номер imageList = 3 и тд) 
      Пробовал все Варианты ничего не выходит! Пожалуйста помогите!
    • От Володимир Антонашко
      Здраствуйте.
      В программе я заполняю 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гб оперативной памяти.
    • От Rusland
      Delphi Tokyo
      ListView->ItemAppearance->ItemAppearance=DynamicAppearance
      Есть ImageList c 3 картинками.
      Добавляю item-ы в ListView:
      procedure TForm1.Button1Click(Sender: TObject); var i:integer; Lvi: TListViewItem; begin LsvObjects.BeginUpdate; LsvObjects.Items.Clear; try for i:=0 to 100 do begin Lvi := LsvObjects.Items.Add; Lvi.Tag := i; Lvi.Data['ObjectText'] := 'ObjectText '+i.ToString; Lvi.Data['StateText'] := 'StateText '+i.ToString; Lvi.Data['ConnectText'] := 'ConnectText '+i.ToString; end; finally LsvObjects.EndUpdate; end; end; в UpdateObjects рандомно выбираю картинку:
      procedure TForm1.LsvObjectsUpdateObjects(const Sender: TObject; const AItem: TListViewItem); var ... oConnectImage: TListItemImage; r: integer; begin r:=Random(ImageList1.Count); oConnectImage:=aItem.Objects.FindDrawable('ConnectImage') as TListItemImage; if (oConnectImage<>nil) then oConnectImage.ImageIndex:=r; ... end; В Windows все нормально. А вот что я вижу на планшетах:
      На Dexp:   
      На Lenovo:
       
      Картинки могут появиться, а могут и нет. Как исправить ситуацию? Вот сам проект.
      Про Berlin добавлю вопрос позже.
    • От RoschinSpb
      Статья: http://community.embarcadero.com/blogs/entry/timagelist101ru-1 Автор: Сергей Рощин Обзор новых возможностей, которые появились в компоненте и редакторе TImageList для Delphi R101 (2016 год, Version 24)
    • От rareMax
      Что то не могу найти в fmx класс TImageList - есть ли он вообще? Если его нет, дайте совет где хранить изображения(смайлы, штук 20). Спасибо.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу