-
Постов
187 -
Зарегистрирован
-
Посещение
-
Победитель дней
10
Весь контент RoschinSpb
-
Этого делать не стоит. Используйте http://docwiki.embarcadero.com/Libraries/Tokyo/en/FMX.ImgList.TGlyph TImage уже сам по себе содержит изображение и разные методы для работы с ним, если там будет в дополнение ко всему ссылка на другое изображение, то не понятно что же все таки рисовать если задано и то и другое. Это была бы полная путаница (коей и так достаточно), поэтому для рисования изображений из TImageList сделан отдельный компонент который используется в TButton и т.п.
-
Да, мило. Как уже было сказано можно подгружать фотографии и в TImageList в RunTime, примеров тут есть. begin Button1.Images := ImageList1; Button1.ImageIndex := ImageList1.AddOrSet('Add', [1, 1.5, 2], ['D:\Мои веселые картинки\Icons\add16.png', 'D:\Мои веселые картинки\Icons\add24.png', 'D:\Мои веселые картинки\Icons\add32.png']); end; Тогда в отличие от TList будет автоматически разруливаться ситуация с большим количеством одновременно созданных TBitmap. TBitmap это довольно ресурсоёмкий объект (отсюда и возможные ошибки с дескрипторами) их количество ограничено, особенно на телефонах, TImageList хранит данные хоть и в памяти но просто в виде двоичных данных (в формате PNG), при этом системные объекты создаются и уничтожатся по мере использования, максимальное их количество можно задать свойством CacheSize (должно быть не меньше чем максимальное количество одновременно видимых картинок на экране).
-
Потому, что ваш покорный слуга уже больше года в IDERA не работает как и большинство разработчиков.
-
Всю работу, так он выполняет, или рисовать тоже должен не хуже фотошопа? Как я понял у вас проблема, IDE долго работает с 50Мб формой? Так это наверно вопрос к IDE, диску, SVN... и да TImageList не предназначен для хранения архива фотографий. Он предназначен для хранения пиктограмм для интерфейсных элементов. Были мысли по расширению возможностей и подзагрузки изображений в RunTime из разных источников (файлы, ресурсы, интернет), но не судьба уже видимо. Ну, как я понимаю скриншотика мобильного приложения с 50Мб картинок мы не дождемся. Я даже подозреваю почему.
-
Любопытно было бы взглянуть на приложение которое работает на телефоне и грузит 50Мб картинок в кнопки во время старта.
-
Вольдемар + valdemar Компонент TImageList - один из самых задокументированных компонентов FM, также имеется демонстрационное приложение входящее в поставку Delphi, кроме того есть две статьи на русском языке про TImageList и видео с примерами работы, не говоря уже об обсуждениях на этом сайте... к чему это я? А... вот вспомнил, это я к тому, что если вы не смогли найти подходящей информации по теме, то это хороший повод задуматься о своём месте в мироздании. Кажется, программирование это не ваше призвание. Возможно в качестве кондуктора, или дворника вы бы принесли гораздо больше пользы человечеству. Спасибо за понимание.
-
На кнопках размер картинки определяется только стилем кнопки, из TImageList берется картинка наиболее подходящего размера (если их несколько) и растягивается, или сжимается до нужного размера с учетом масштаба дисплея. ActionList вообще ни как на картинку не влияет, там хранится только номер. Кстати что за вопрос-то?
- 2 ответа
-
- timagelist
- tactionlist
-
(и ещё 1 )
C тегом:
-
Форма должна иметь значение свойства FormStyle равное fsPopup. См. также Всплывающие формы в XE5
- 2 ответа
-
- delphi xe10 berlin
- android
-
(и ещё 2 )
C тегом:
-
Я приду. Фэйлор, сказал только если жена отпустит.
-
Пора это заведение переименовать в Генерал Фэйлор. «General Failure reading drive a:»
-
Делать привязку к KeyDown я бы вообще не рекомендовал. Была б моя воля я бы такие события, которые работают с физическими устройствами (OnMouseXXX, OnKeyYYY) вообще выпилил, ну нету на телефоне ни физической мыши, ни клавиатуры. Сенсорный экран есть и голосовой ввод есть, но это несколько иные вещи. Попытка эмулировать виндовое поведение, ради совместимости которой всё равно нет, приводит к таким вот проблемам. Если надо что-то сделать, с введенным текстом, то реагировать можно в OnChange, OnExit или вообще по нажатию на кнопку "Ok" делать подмену десятичного разделителя.
-
Во-первых посмотрите работает ли демо. Если нет, то пишите жалобу, при мне работало Во-вторых, если работает демо, найдите десять отличий своего проекта и демонстрационного. Например, поскольку у Вас есть связь с набором данных, то лучше использовать не TStringGrid, а TGrid.
- 7 ответов
-
- stringgrid
- imagelist
-
(и ещё 1 )
C тегом:
-
В хорошо поставленном вопросе содержится половина ответа, но это не про Вас... И так чего не понятно из рекомендованного примера? Назначаете свойство Images у вашей сетки (StringGrid). Делаете щелчок правой кнопкой мыши где-то на заголовке GtringGrid, добавляете колонку TGlyphColumn (используя пункт открывшегося контекстного меню). Эта колонка теперь будет отображать картинку с соответствующим номером, вместо текста 0, 1,2,3 и т.п. В том же примере есть варианты работы с наборами данных.
- 7 ответов
-
- stringgrid
- imagelist
-
(и ещё 1 )
C тегом:
-
Демонстрационный проект GridDemo пробовали смотреть?
- 7 ответов
-
- stringgrid
- imagelist
-
(и ещё 1 )
C тегом:
-
Хорошо, если упростить по-максимуму сделать без Resize, например? Сделать не TImage, а TBitmap...
-
Какая версия Delphi?
-
Ну вот, а все Крюкова ругали...
-
Про bmp.Clear(TAlphaColorRec.Null) надо не забывать. В Windows новая картинка создается уже заполненной нулями, хотя гарантий нет, а вот на других платформах — память содержит мусор, хотя гарантий тоже нет, поэтому вполне может работать на одном дэвайсе нормально, а на другом выдавать мусор.
-
Может будет полезно: Всплывающие формы в XE5
- 3 ответа
-
- splash message
- splash screen
-
(и ещё 1 )
C тегом:
-
Да, проблема в стрим. И скорее всех на уровне ОС Windows. Сама Fire Monkey не занимается кодированием-декодированием png-файлов. procedure TForm2.UpdateBitmap(var Bitmap: TBitmap); var Stream: TMemoryStream; begin if Bitmap <> nil then begin Stream := TMemoryStream.Create; try Bitmap.SaveToStream(Stream); FreeAndNil(Bitmap); Stream.Position := 0; Bitmap := TBitmap.Create; Bitmap.LoadFromStream(Stream); finally FreeAndNil(Stream); end; end; end; При однократном перекодировании артефакты практически не заметны так что на других платформах это не столь критично. Заметно становится только при многократном перекодировании, что и происходит в IDE. Есть кто с честной версией? Может продублируете багрепорт со ссылкой на https://quality.embarcadero.com/browse/RSP-18210.