На форме есть несколько TImageControl с загруженными изображениями.
Тестирование показало, на андроид 5.x приложение крашится на запуске, с сообщением "Приложение было остановлено".
До 5.x все отлично работает. Пустой TImageControl приложение такой ошибки не дает, только с изображением.
Кто нибудь знает, что это за беда и какие есть варианты решения?
Вот в этом обсуждении http://fire-monkey.ru/topic/159-kak-dobavit-v-svoi-komponent-timage-i-dat-vozmozhnos/?p=569
есть 3 и 4 пункт, что вроде как можно в битмапе хранить изображение.
Уточните, как добавить битмап в published секцию(формы я так понял?), и загрузить свое изображение?
Добрый день,
Если есть исходники FMX, то посмотрите на реализацию контрола FMX.StdCtrls.TImageControl, не стесняйтесь их изучать. Там как раз аналогичная ситуация, есть встроенный TImage, в который загружается пользовательское изображение.
Общие правила такие:
Решаем, где будем хранить контейнер для изображения TImage: в стиле или создавать динамически при создании нашего контрола?
Любое изображение нужно где-то хранить, вариант с загрузкой по пути не самый удачный на мой взгляд. Так как пути на разных платформах будут разными, да и возникает необходимость разворачивания файлов изображений вместе с пакетом (Deployment Manager - Включение своих файлов в приложение). Единственный плюс при этом - это экономия на памяти и ускорение запуска программы, за счет отложенной загрузки изображения. Это может стать решающей причиной для хранения изображения по пути к файлу со всеми вытекающими.
Изображение храним в TBitmap, который создается динамически. Доступ к нему открывается в published секции для работы в DesignTime. В этом случае пользователь сможет загрузить свое изображение в дизайн тайме и при этом оно при сохранении формы автоматически сериализуется в ресурсы формы, а в последующем и восстановится.
Осталось настроить загрузку изображения непосредственно в компонент отображения. В нашем случае в TImage. Если TImage создается динамически нашим контролом и не зависит от стиля, то смело грузим картинку из TBitmap в TImage.Bitmap. Если же контейнер загружается из стиля, то грузим картинку в перекрытом методе ApplyStyle, который вызывается, когда стиль загружен для контрола
Вопрос
Камышев Александр
CBuilder XE7, приложение под андроид.
На форме есть несколько TImageControl с загруженными изображениями.
Тестирование показало, на андроид 5.x приложение крашится на запуске, с сообщением "Приложение было остановлено".
До 5.x все отлично работает. Пустой TImageControl приложение такой ошибки не дает, только с изображением.
Кто нибудь знает, что это за беда и какие есть варианты решения?
Вот в этом обсуждении http://fire-monkey.ru/topic/159-kak-dobavit-v-svoi-komponent-timage-i-dat-vozmozhnos/?p=569
есть 3 и 4 пункт, что вроде как можно в битмапе хранить изображение.
Уточните, как добавить битмап в published секцию(формы я так понял?), и загрузить свое изображение?
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.