Форум программистов, компьютерный форум, киберфорум
Delphi: FireMonkey
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/26: Рейтинг темы: голосов - 26, средняя оценка - 4.62
 Аватар для Maxsis
5 / 5 / 3
Регистрация: 10.06.2011
Сообщений: 242

Loading Bitmap Failed

15.03.2021, 22:26. Показов 5434. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему происходит ошибка при создании элементов в динамике?

Вот допустим, массив мы заполнили и теперь в piclist[u].imagefile у нас записан стрим с данными (картинка)...
Теперь я хочу, чтобы VertScrollBox заполнился фреймами, на которых должны быть загружены изображения которые загружены из стрима массива.

У меня это сделано так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
function TMainForm.LoadGames: integer;
var
i,a,b,u:integer;
fr:TItemFrame;
  Status0Color : TAlphaColor;
  Status1Color : TAlphaColor;
  Status2Color : TAlphaColor;
begin
  Status0Color := TAlphaColorF.Create(250 / 255, 77 / 255, 77 / 255, 255 / 255).ToAlphaColor;
  Status1ColoR := TAlphaColorF.Create(57 / 255, 191 / 255, 121 / 255, 255 / 255).ToAlphaColor;
  Status2Color := TAlphaColorF.Create(169 / 255, 169 / 255, 169 / 255, 255 / 255).ToAlphaColor;
  for i := Self.VertScrollBox1.ComponentCount-1 downto 0 do
    begin
    if (self.VertScrollBox1.Components[i] is TItemFrame) then
       begin
       {$IFDEF MSWINDOWS}
       (self.VertScrollBox1.Components[i] as TItemFrame).free;
       {$ENDIF}
       {$IFDEF ANDROID}
       (self.VertScrollBox1.Components[i] as TItemFrame).DisposeOf;
       {$ENDIF}
       {$IFDEF IOS}
       (self.VertScrollBox1.Components[i] as TItemFrame).DisposeOf;
       {$ENDIF}
       end;
    end;
 
   for i := 0 to LENGTH(MatchList)-1 do
      begin
   if MatchList[i].LeagueFullName = ActiveLeague then
        begin
          fr:=TItemFrame.Create(self.VertScrollBox1);
          fr.Name:='gameitem'+ inttostr(i);
          fr.Margins.Top:=5;
          fr.Margins.Right:=5;
          FR.Margins.Left:=5;
          FR.Position.Y:=i*41+5+i*5;
          fr.Parent:=self.VertScrollBox1;
          fr.Align:=TAlignLayout.Top;
          //
          fr.Team1NameText.Text := MatchList[i].HomeName;  //Название команды 1
          fr.Team2NameText.Text := MatchList[i].AwayName;  //Название команды 2
          fr.LeagueNameText.Text := MatchList[i].LeagueName; //Название Лиги
          fr.ScoreFullTimeText.Text := MatchList[i].FullTotal; // Счет Фулл
          fr.ScoreHalfTimeText.Text := MatchList[i].HalfTotal; // Счет половина
          if MatchList[i].GameStatus = 0 then fr.StatusIndicator.Fill.Color := Status0Color; //Status 0
          if MatchList[i].GameStatus = 1 then fr.StatusIndicator.Fill.Color := Status1Color; //Status 1
          if MatchList[i].GameStatus = 2 then fr.StatusIndicator.Fill.Color := Status2Color; //Status 2
          self.VertScrollBox1.Height := self.VertScrollBox1.Height + fr.Height+5;
 
 
          //Image1.Bitmap.LoadFromStream(piclist[5].imagefile); <- Сделал для теста на форме картинку, все вроде как работает
 
          ///Загрузка картинок
         if Length(MatchList[i].HomePicID) > 5 then
          begin
             for u := 0 to LENGTH(piclist)-1 do
              begin
               if piclist[u].id = MatchList[i].HomePicID then
                begin
                 fr.DownloadBitmap(piclist[u].imagefile, fr.Team1Image.Bitmap);
                end;
              end;
          end;
        end;
      end;
    VertScrollBox1.RealignContent;
    VertScrollBox1.Repaint;
    VertScrollBox1.RecalcSize;
end;
А сам фрейм сделан так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
unit itemU;
 
interface
 
uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 
  FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
  FMX.Effects, FMX.Objects, System.Net.HttpClient, FMX.ImgList;
 
type
  TItemFrame = class(TFrame)
    RectangleBG: TRectangle;
    Image1: TImage;
    Team1Image: TImage;
    Team2Image: TImage;
   ///Тут куча однотипного текста 
  private
    { Private declarations }
  public
    { Public declarations }
    FBmp : TBitmap;
    procedure DownloadBitmap(AStream: TMemoryStream; ABmp: TBitmap);
  end;
 
implementation
 
{$R *.fmx}
 
procedure TItemFrame.DownloadBitmap(AStream:TMemoryStream; ABmp:TBitmap);
begin
  FreeAndNil(FBmp);
  try
      abmp.LoadFromStream(AStream);
  finally
    AStream.Free;
  end;
end;
 
end.
Почему отвал на строке abmp.LoadFromStream(AStream)? Loading Bitmap Failed
Мне кажется, что идет загрузка в объект, который еще не создан. Однако! У нас же объект уже создан на строке fr:=TItemFrame.Create(self.VertScrollBox 1); значит компонент fr.Team1Image.Bitmap есть и к нему обращаться можно
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.03.2021, 22:26
Ответы с готовыми решениями:

Error reading ****.Bitmap: Failed to read ImageList data from stream
Здравствуйте. Сразу скажу, я не программист, но нужен опытный взгляд программистов delphi) В нашей организации используется...

Loading Java Applet Failed...
Помогите разобраться в такой теме: JBuilder5, создаю апплет: кнопки, панели, текстовые поля - всё ОК. Но стоит добавить любой компонент из...

Loading Java Applet Failed... Часть вторая :)
Браузер - Internet Explorer, ОС - WindowsXP. Что надо сделать чтобы отображались апплеты, например на странице...

24
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,681
Записей в блоге: 21
18.03.2021, 14:15
Студворк — интернет-сервис помощи студентам
так ради бога, по сути разницы немного, что stream что bitmap
в любом случае где-то будет
Delphi
1
2
3
B:= TBitmap.CreateFromStream(th.resst);
...
img1.Bitmap  := B;
0
 Аватар для Maxsis
5 / 5 / 3
Регистрация: 10.06.2011
Сообщений: 242
18.03.2021, 15:49  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
в любом случае где-то будет
1) Я не понял куда поток цеплять
2) Я НЕ ПОНИМАЮ, почему когда я первый раз собрал приложение и запустил, то все сработало, а потом я запустил, то опять появились ошибки... Это не совсем логично же, от слова совсем!

TestAPP.zip
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,681
Записей в блоге: 21
19.03.2021, 09:02
Лучший ответ Сообщение было отмечено Maxsis как решение

Решение

я немножечко поменял логику

еще этот сервер отдает сжатый контент, я не стал разбираться почему HttpClient сам не разжимает, попросил в заголовках не сжимать
Вложения
Тип файла: 7z 3.7z (11.13 Мб, 7 просмотров)
1
 Аватар для Maxsis
5 / 5 / 3
Регистрация: 10.06.2011
Сообщений: 242
19.03.2021, 10:30  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
сжатый контент
Ничего себе. Не знал об этом. Это как-то можно посмотреть получается?
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,681
Записей в блоге: 21
19.03.2021, 11:54
Конечно.
Вам предстоит открыть для себя чудесный мир отладчика, который встроен в каждый браузер!
Очень рекомендую. невероятной силы вещь)))

Я правда так и не понял, почему HttpClient сам не разжал, но мне надо было бежать на работу ))
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.03.2021, 11:54

MemoryLoadLibrary failed loading PyQt4\QtGui.pyd на VPS
Пытаюсь запустить софт на VPS (Windows 2012 Server) но получаю такую ошибку: Если положить в папку с софтом папку PyQt4, то...

failed loading /usr/local/php5/ZendExtensionManager.dll
Всем привет. Скачал Denwer portable(хотя и пробовал устанавливать стандартно). Запускаю Denwer, создаётся виртуальный диск Z. PHP...

Firebird 3.0 IProvider::attachDatabase failed when loading mapping cache
Пытаюсь подключиться из ms visual studio 2017 к firebird 3.0 using System; using System.Collections.Generic; using...

Ошибка loading fsb failed for audio clip (WebGl и мобилки)
Здравствуйте Есть игра скомпилированная на HTML WebGL загруженная на сервер. С компьютера все норм А с телефона не воспроизводятся...

как исправить ошибку failed to update bitmap!
failed to update bitmap как исправить!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru