Перейти к содержанию
Fire Monkey от А до Я
  • 0

ListView 2 - DynamicAppearance загрузка изображения


master webs

Вопрос

Добрый день загружаю список товаров с сайта планирую изображения  сохранять на устройстве пока тестирую без сохранения  

перебираю json заполняю списком товаров

и подгружаю изображения

function LoadWebImage(urls: string) : TMemoryStream;
var
IdHTTP: TNetHTTPClient;
begin
  IdHTTP := TNetHTTPClient.Create(nil);
  Result := TMemoryStream.Create;
  try
    idhttp.Get (url+'/'+urls, Result);
    Result.Position := 0;
  finally
   idhttp.Free;
  end;
end;

вызов функции

 ms := LoadWebImage(aJSObjArr.GetValue('image').Value);
TListItemImage(Objects.FindDrawable('Image2')).Bitmap.LoadFromStream(ms);
 ms.Free;

проблема в следующем

во всех позиция загружается одна и таже картинка

при просмотре на винде и маке грузит быстро

на симуляторе  заметил что при больших списках 

когда уже список создан  видно что в итемах изображения меняется  и останавливается на последнем изображении в списке 

ощущение такое что происходит все в потоке и изображение присваивает  сразу всем  итемам вместо того чтоб  обождать загрузки фото и создать следующий итем

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

У меня было также с Objects.FindDrawable('Image2'), пришлось переделать на присвоении картинки через ImageList (правда в моем случае было всего 2 картинки).

Кстати, Zuby еще писал что надо проверять существование объекта:

IItem:=Listview1.Items[k].Objects.FindDrawable('Image2') as TListItemImage;
if IItem<>nil then

 

Изменено пользователем Rusland
Ссылка на комментарий
  • 0

 

20 минут назад, Rusland сказал:

У меня было также с Objects.FindDrawable('Image2'), пришлось переделать на присвоении картинки через ImageList (правда в моем случае было всего 2 картинки).

Кстати, Zuby еще писал что надо проверять существование объекта:


IItem:=Listview1.Items[k].Objects.FindDrawable('Image2') as TListItemImage;
if IItem<>nil then

 

проверку объекта уже научен делать )  были неприятности 

с ImageList  не знаю как теперь быть ресурсов будет больше кушать раза в два 

Ссылка на комментарий
  • 0
8 минут назад, master webs сказал:

с ImageList  не знаю как теперь быть ресурсов будет больше кушать раза в два 

Да, хотелось бы разобраться почему обычное присвоение через битмап работает не так как положено.

Ссылка на комментарий
  • 0
3 минуты назад, Rusland сказал:

Да, хотелось бы разобраться почему обычное присвоение через битмап работает не так как положено.

получилось вот таким способом

IItem:=LItem.Objects.FindDrawable('Image2') as TListItemImage;
               if IItem<>nil then
               IItem.Bitmap:=Image1.Bitmap;
               if aJSObjArr.GetValue('image').Value<>'null' then
                begin
                ms := LoadWebImage(aJSObjArr.GetValue('image').Value);
                LItem.Bitmap.LoadFromStream(ms);
                IItem.Bitmap:=LItem.Bitmap;
                ms.Free;
                end;

 

Изменено пользователем master webs
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

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