Перейти к содержанию
  • 0
Ra72

[TStyleBook] [TStyleStreaming] Почему TStyleStreaming.SaveToStream не сохраняет полностью все стили на Android?

Вопросы

Следующий код не работает на Android. На Win32 в FBinary записывается примерно 100 килобайт, а на Android - 36 байт.

  FBinary := TMemoryStream.Create;
  TStyleStreaming.SaveToStream(AStyleBook.Style, FBinary, TStyleFormat.Binary);

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


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

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

  • 0

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

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


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

P.S. Как загрузить StyleBook в Android из ресурсов принудительно? Или это новая тема?

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


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

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

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

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

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

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

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

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

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


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

    • От krapotkin
      А также Cannot find style resource fir Windows.
      Воспроизведение
      1. создать новое FMX приложение
      2. кинуть TSyleBook
      3. зайти по двойному щелчку
      4. попытаться добавить платформу
      результат (1)

      5. добавить Windows, Android. Удалить Default. закрыть StyleBook editor
      6. Положить кнопку, ПКМ, Edit Custom Style
      7. Результат

       
      если же просто сначала кинуть кнопку, сделать ПКМ, Edit custom Style, то картина совсем другая

      поэтому и не находит ни Windows ни Android   Соответственно Workaround - найти в FMX Platform = 'Android' и заменить на Platform = 'AndroidL Light' Platform = 'Windows' тоже возможно надо будет заменить, но с ней проблем вроде нет пока.     Все это делал на Windows 7 x64 Pro SP1  
    • От Ra72
      Уважаемые эксперты!
      Хочу написать свой редактор стилей для мобильных платформ.
      Для полного счастья не хватает знаний каким образом из TStyleBook.Style выгрузить его изменения в TStyleBook.Resource для последующего сохранения в файл.
       
    • От sviat9440
      Всем привет! Давно с вами не виделись)) Вот такая проблема есть: У меня Виндовс 10, и все корректно отображается. Я имею в виду стили. У меня на данный момент нет возможности протестировать приложение на Виндовс 7, но прилагаю скрины (Как должно/Как отображается). Вопрос: Проблема у меня? Или на стороне FireMonkey?
       
      Попутный вопрос: Если на стороне FireMonkey, то как узнать версию ОС, чтобы при запуске на вин7, сообщать пользователю что то типа "Твоя ОС не поддерживается"?
       
      Дополнительная информация: Используется Delphi XE 10 Seattle.


    • От Ra72
      Уважаемые эксперты!
      Подскажите, как сохранить StyleBook в текстовом формате *.style динамически (во время исполнения программы) ? Например:
      object TLayout Align = alClient Height = 715.000000000000000000 Position.Y = 33.000000000000000000 Width = 1162.000000000000000000 object TSwitchObject StyleName = 'switchstyle' ...
    • От Vitaldj
      Есть рабочий код, но без ошибок работает только в win32 и MacOsX:
       
      var

       lStream1 : TMemoryStream ;
      begin
       lStream1 := TMemoryStream.Create;
       form1.IdHTTP1.Get( 'http://мой сайт'+, lStream1);
       lStream1.SaveToFile(ExtractFilePath(ParamStr(0)) + tstr.Strings[3] );
       lStream1.Free;
       
      Ошибка только на строчке  lStream1.Free и только в win64. На win32 и MacOsX нет.
      Почему ошибка?
    • От basnik
      Требуется консультация по составлению интерфейса и его верстка по готовому макету.
      ОС:Android
      Платформа: Delphi XE7
       
      Задачи: 
      - Создание стилей для FireMonkey 
      - Верстка интерфейса по макету 
      Требования: 
      - Опыт разработки мобильных приложений и интерфейсов 
      - Желание работать в команде 
      - Внимательность, способность выполнять работу качественно и в установленные сроки 
      - Коммуникабельность, адекватное восприятие критики, дисциплинированность и ответственность
       
      Работа удаленная, оплата по договоренности.
       
      Skype: basnik31
      ICQ: 629993
    • От HoShiMin
      Загружаю картинку в TBitmap из TMemoryStream, но иногда в TBitmap копируется только часть картинки. Загружаю следующим кодом:
      var   ResourceStream: TResourceStream;   Bitmap: TBitmap; begin   ResourceStream := TResourceStream.Create(hInstance, 'IMAGE_NAME', RT_RCDATA);   ResourceStream.Position := 0;   Bitmap.LoadFromStream(ResourceStream);     ResourceStream.SaveToFile('img_res.png');   Bitmap.SaveToFile('img_bitmap.png');     FreeAndNil(ResourceStream); end; В итоге в img_res.png нормальное изображение, а в img_bitmap.png первые N байт оригинала, при одинаковом размере картинки N одинаковое. С TMemoryStream аналогично.
      Как исправить?
    • От Gor777
      Коллеги
      Есть проблема:
      Есть картинка созданная средствами сторонней dll, от нее у меня только HBITMAP Как мне ее перекинуть в TBitmap, и вывести ее например в контрол TImage?  
    • От xenon54
      Сделал кастомный TCustomRoundRect  (потомок TRoundRect), хочу использовать его в стилях, а не тут-то было. Такая вот ошибка появляется при запуске приложения.
    • От kidrock1
      Всем привет, друзья. Столкнулся со следующей проблемой. Создаётся поток с целью загрузки картинок во время чтения статьи. Да так чтобы основная форма в момент загрузки не была заморожена. Вот код:
      type ThreadHTTP1=class(TThread) private i:integer; public procedure Execute;override; procedure ShowResult1; end; procedure ThreadHTTP1.Execute; var j:integer; begin inherited; try lStream1 := TMemoryStream.Create; Form3.IdHTTP1.Get('http://totalmma.ru/newsupload/8306.jpg',lStream1); except // ShowMessage('no'); end; Synchronize(ShowResult1); end; procedure ThreadHTTP1.ShowResult1; begin ShowMessage(IntToStr(Form3.IDHTTP1.Response.ContentLength)); Form3.Image1.Bitmap.LoadFromStream(lStream1); Form3.Image1.Visible := true; Form3.Caption:=IntToStr(i)+' kbs'; Form3.IdHTTP1.Free; Stream.Free; end; procedure TForm3.Button1Click(Sender: TObject); var MyHTTP1:ThreadHTTP1; begin MyHTTP1 := ThreadHTTP1.Create(False); end; Так вот проблема в следующем. На винде всё работает. А вот когда компилируешь под андройд и переносишь на телефон, при нажатии на кнопке ничего не происходит. Очень прошу помочь, друзья.
  • Последние посетители   0 пользователей онлайн

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

×
×
  • Создать...