RoschinSpb

Пользователи
  • Публикации

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

  • Посещение

  • Days Won

    6

RoschinSpb last won the day on 13 февраля

RoschinSpb had the most liked content!

3 подписчика

О RoschinSpb

  • Звание
    Embarcadero FireMonkey разработчик

Контакты

  • Сайт
    http://blogs.embarcadero.com/roschinspb

Информация

  • Пол
    Не определился
  • Город
    Санкт-Петербург

Посетители профиля

516 просмотров профиля
  1. Ну вот, а все Крюкова ругали...
  2. Про bmp.Clear(TAlphaColorRec.Null) надо не забывать. В Windows новая картинка создается уже заполненной нулями, хотя гарантий нет, а вот на других платформах — память содержит мусор, хотя гарантий тоже нет, поэтому вполне может работать на одном дэвайсе нормально, а на другом выдавать мусор.
  3. Может будет полезно: Всплывающие формы в XE5
  4. А что я постоянно сталкиваюсь в Delphi6... если любые изменения были, то TImageList тоже меняется. Может, конечно, тоже от картинки зависит.
  5. Картинки меняются даже в Delphi 6 (не XE6), но вот заметных артефактов не наблюдается.
  6. Да, проблема в стрим. И скорее всех на уровне ОС 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.
  7. Зря только начал с упоминания TImageList. Подозреваю, что начнут его чинить и в результате испортят.
  8. 03.06 и 10.06 у меня назначены пьянкиответственные мероприятия в других местах. Кстати напомню, что в прошлый раз кроме упомянутых личностей пришел только один человек.
  9. Я так понимаю нужно реализовать Ад перфекциониста.
  10. 1,2 - нет 3-4. зависит от реализации. Графика за границами видимой области рисуется быстрее, но там выполняется и другая работа не связанная с рисованием. TScrollContent это составная часть TCustomScrollBox тут нельзя выбрать одно, или другое. Ну ... рекомендации, если уже решили писать свой собственный компонент, конечно, не используйте ни то не другое. Наследуйтесь от TControl, поскольку Вам не нужна совместимость ... но Вы об этом пожалеете. Вообще же графика рисуется очень медленно на мобильных платформах, радикально быстрее будут рисоваться нативные контролы. Для IOS была сделана нативная реализация TGrid, и там выигрыш в скорости значительный, хотя не все возможности стилевой реализации были поддержаны. В Berlin`е можно посмотреть. Если интересно посмотрите мои наброски... Grid.zip
  11. Про свою, я вообще молчу. Да технически всё понятно, при записи в поток и обратно получаются не идентичные результаты. Проявляется это в редакторе имажелиста потому, что там это происходит чаще чем везде. Там постоянно устанавливается свойство Dormant.
  12. Не, посмотрите на картинку ниже, 120 циклов и она выглядит как живая. На баги лучше реагируют на те, которые от официальных юзеров. На баги от работников, тем более бывших реагируют плохо.
  13. Не может, а точно. А баг не заметили потому, что проявляется далеко не на всех картинках. Как я понял только на одном, или нескольких оттенках серого (Ц). Это на сколько я понял из-за того, что при записи TBitmap в поток и последующем восстановлении данные получаются не совсем идентичными. Вот например если эту процедуру запускать несколько раз, то картинка становится клетчатой 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; Вот, что у меня получилось. Вторая картинка (для сравнения) преобразуется точно также, но как видно не портится. Так что проблема не в TImageList и не в TImage, а где-то на более глубоком уровне. Добавляю также небольшой демо проектик. Проверял на Windows 10. Интересно что будет на других платформах. Proj.zip
  14. А, вот! На сиэтле. Да, странная картина, еще более странно, что ни кто не замечал такого поведения.