Перейти к содержанию
Fire Monkey от А до Я

RoschinSpb

Пользователи
  • Постов

    187
  • Зарегистрирован

  • Посещение

  • Победитель дней

    10

Весь контент RoschinSpb

  1. Если всё кидать на Tabы то очень скоро форма превратится в венегрет, где ничего невозможно найти. Гораздо удобнее работать с формой/фреймом на котором есть минимально необходимый набор контролов. А фреймы можно уже кидать на табы, панели или еще куда - дело вкуса.
  2. Этого делать не стоит. Используйте http://docwiki.embarcadero.com/Libraries/Tokyo/en/FMX.ImgList.TGlyph TImage уже сам по себе содержит изображение и разные методы для работы с ним, если там будет в дополнение ко всему ссылка на другое изображение, то не понятно что же все таки рисовать если задано и то и другое. Это была бы полная путаница (коей и так достаточно), поэтому для рисования изображений из TImageList сделан отдельный компонент который используется в TButton и т.п.
  3. Да, мило. Как уже было сказано можно подгружать фотографии и в 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 (должно быть не меньше чем максимальное количество одновременно видимых картинок на экране).
  4. Потому, что ваш покорный слуга уже больше года в IDERA не работает как и большинство разработчиков.
  5. Всю работу, так он выполняет, или рисовать тоже должен не хуже фотошопа? Как я понял у вас проблема, IDE долго работает с 50Мб формой? Так это наверно вопрос к IDE, диску, SVN... и да TImageList не предназначен для хранения архива фотографий. Он предназначен для хранения пиктограмм для интерфейсных элементов. Были мысли по расширению возможностей и подзагрузки изображений в RunTime из разных источников (файлы, ресурсы, интернет), но не судьба уже видимо. Ну, как я понимаю скриншотика мобильного приложения с 50Мб картинок мы не дождемся. Я даже подозреваю почему.
  6. Любопытно было бы взглянуть на приложение которое работает на телефоне и грузит 50Мб картинок в кнопки во время старта.
  7. Вольдемар + valdemar Компонент TImageList - один из самых задокументированных компонентов FM, также имеется демонстрационное приложение входящее в поставку Delphi, кроме того есть две статьи на русском языке про TImageList и видео с примерами работы, не говоря уже об обсуждениях на этом сайте... к чему это я? А... вот вспомнил, это я к тому, что если вы не смогли найти подходящей информации по теме, то это хороший повод задуматься о своём месте в мироздании. Кажется, программирование это не ваше призвание. Возможно в качестве кондуктора, или дворника вы бы принесли гораздо больше пользы человечеству. Спасибо за понимание.
  8. На кнопках размер картинки определяется только стилем кнопки, из TImageList берется картинка наиболее подходящего размера (если их несколько) и растягивается, или сжимается до нужного размера с учетом масштаба дисплея. ActionList вообще ни как на картинку не влияет, там хранится только номер. Кстати что за вопрос-то?
  9. Попробуйте назначать родителя браузеру после смены стиля рамки формы. Дело в том, что изменение рамки приводит к пересозданию хэндла окна и скорее всего это не отслеживается браузером что и приводит в итоге к ошибке...
  10. Форма должна иметь значение свойства FormStyle равное fsPopup. См. также Всплывающие формы в XE5
  11. Я приду. Фэйлор, сказал только если жена отпустит.
  12. Пора это заведение переименовать в Генерал Фэйлор. «General Failure reading drive a:»
  13. Делать привязку к KeyDown я бы вообще не рекомендовал. Была б моя воля я бы такие события, которые работают с физическими устройствами (OnMouseXXX, OnKeyYYY) вообще выпилил, ну нету на телефоне ни физической мыши, ни клавиатуры. Сенсорный экран есть и голосовой ввод есть, но это несколько иные вещи. Попытка эмулировать виндовое поведение, ради совместимости которой всё равно нет, приводит к таким вот проблемам. Если надо что-то сделать, с введенным текстом, то реагировать можно в OnChange, OnExit или вообще по нажатию на кнопку "Ok" делать подмену десятичного разделителя.
  14. Во-первых посмотрите работает ли демо. Если нет, то пишите жалобу, при мне работало Во-вторых, если работает демо, найдите десять отличий своего проекта и демонстрационного. Например, поскольку у Вас есть связь с набором данных, то лучше использовать не TStringGrid, а TGrid.
  15. В хорошо поставленном вопросе содержится половина ответа, но это не про Вас... И так чего не понятно из рекомендованного примера? Назначаете свойство Images у вашей сетки (StringGrid). Делаете щелчок правой кнопкой мыши где-то на заголовке GtringGrid, добавляете колонку TGlyphColumn (используя пункт открывшегося контекстного меню). Эта колонка теперь будет отображать картинку с соответствующим номером, вместо текста 0, 1,2,3 и т.п. В том же примере есть варианты работы с наборами данных.
  16. Демонстрационный проект GridDemo пробовали смотреть?
  17. Хорошо, если упростить по-максимуму сделать без Resize, например? Сделать не TImage, а TBitmap...
  18. Про bmp.Clear(TAlphaColorRec.Null) надо не забывать. В Windows новая картинка создается уже заполненной нулями, хотя гарантий нет, а вот на других платформах — память содержит мусор, хотя гарантий тоже нет, поэтому вполне может работать на одном дэвайсе нормально, а на другом выдавать мусор.
  19. Может будет полезно: Всплывающие формы в XE5
  20. А что я постоянно сталкиваюсь в Delphi6... если любые изменения были, то TImageList тоже меняется. Может, конечно, тоже от картинки зависит.
  21. Картинки меняются даже в Delphi 6 (не XE6), но вот заметных артефактов не наблюдается.
  22. Да, проблема в стрим. И скорее всех на уровне ОС 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.
×
×
  • Создать...