Игорь Дегтярёв Опубликовано 16 апреля Опубликовано 16 апреля Доброго дня. Подскажите пожалуйста как загрузить иконку в tabitem из потока TMemoryStream? Картинка в потоке в формате png. Спасибо. Цитата
0 krapotkin Опубликовано 17 апреля Опубликовано 17 апреля если из битмапа загрузить можете, то битмап создается из TMemoryStream легко https://docwiki.embarcadero.com/Libraries/Alexandria/en/FMX.Graphics.TBitmap.CreateFromStream Цитата
0 Игорь Дегтярёв Опубликовано 17 апреля Автор Опубликовано 17 апреля Похоже у меня проблемы с самим табом, я только начал с fmx разбираться, как я понял свою иконку нужно загружать в TabItem.CustomIcon, но никак не могу разобраться как именно её туда добавить. Цитата
0 krapotkin Опубликовано 17 апреля Опубликовано 17 апреля там должен быть TFixedMultiResBitmap на его страничке есть ссылки на его создание и другие методы Цитата
0 Игорь Дегтярёв Опубликовано 17 апреля Автор Опубликовано 17 апреля (изменено) К сожалению ничего не выходит, такой вариант работает Image.MultiResBitmap.Bitmaps[1.0].LoadFromStream(TempStream) где Image - TImage а так не работает ParentTab.CustomIcon.Bitmaps[1.0].LoadFromStream(TempStream) где ParentTab - TabItem Изменено 17 апреля пользователем Игорь Дегтярёв Цитата
0 krapotkin Опубликовано 18 апреля Опубликовано 18 апреля все верно нужно создать image и его присвоить куда надо Цитата
0 Игорь Дегтярёв Опубликовано 18 апреля Автор Опубликовано 18 апреля Вот и хотелось бы узнать как? Кучу вариантов перебрал, ни на что не ругается, но и не отображается. Цитата
-1 Игорь Дегтярёв Опубликовано 25 апреля Автор Опубликовано 25 апреля Похоже здесь такие же "знатоки" fmx как и я :). Цитата
0 krapotkin Опубликовано 25 апреля Опубликовано 25 апреля ну же и поиск есть я правильно понял, чего вы хотите? 7.7z Цитата
0 Игорь Дегтярёв Опубликовано 28 апреля Автор Опубликовано 28 апреля Спасибо за пример, прошу прощения за резкий пост. Но хотелось бы без imagelist'а обойтись, а напрямую в tabitem.customicon загружать, с этим и борюсь. Цитата
0 krapotkin Опубликовано 28 апреля Опубликовано 28 апреля если вы загрузите его в дизайнере, то он выводится на экран? Цитата
0 Игорь Дегтярёв Опубликовано 29 апреля Автор Опубликовано 29 апреля В дизайнере выводится без проблем, а вот в рантайм не хочет. Вроде бы посмотрел какое свойство в дизайнере, в то же в рантайме пытаюсь загрузить, ошибок нет, но эффекта ноль. Может какое-то событие для перерисовки нужно вызвать? Пробовал NeedStyleLookup, ApplyStyleLookup, Repaint - не отображается иконка. Цитата
0 krapotkin Опубликовано 29 апреля Опубликовано 29 апреля Просто я в дизайнере туда вставил изображение и никакой реакции нет. Искать не стал, т.к. скорее всего дело в стиле, где эта картинка просто не выводится. Но что в дизе что в рантайме общий смысл один. Мы создаем MultiResBitmap. Там для каждого разрешения экрана нужна своя картинка. Поэтому мы свою загружаем как картинку только для ОДНОГО разрешения. Например для scale = 1.0 Система потом при выводе сама должна подобрать какое разрешение ей ближе и выбрать нужную картинку. Цитата
0 Игорь Дегтярёв Опубликовано 30 апреля Автор Опубликовано 30 апреля В общем проблема оказалась простой, но не очевидной :). Заметил что в примере выше ParentTab.CustomIcon[0].MultiResBitmap.Bitmaps[1].LoadFromStream(TempStream) работает и загружает картинку, а в моём проекте нет. Начал сравнивать всё, свойства и т.д., оказалось что в примере для таба выставлено свойство StyleLookup = tabitemcustom, а у меня табы создаются динамически и данное свойство не устанавливается. При этом если в дизайнере добавить иконку, то свойство прямо в дизайнере устанавливается автоматически. В общем программно стал его назначать и иконки начали загружаться и отображаться. Судя по всему с подобными вещами ещё придётся помучаться в fmx, например, уже не получается выделить весь текст в Edit'е через свойство SelectAll :). Спасибо за помощь, пример с Helper'ом интересный. Цитата
0 krapotkin Опубликовано 30 апреля Опубликовано 30 апреля помню, был баг с выделением в Edit пару-тройку версий делфи назад , чинили Цитата
Вопрос
Игорь Дегтярёв
Доброго дня. Подскажите пожалуйста как загрузить иконку в tabitem из потока TMemoryStream? Картинка в потоке в формате png. Спасибо.
14 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.