Jump to content

Recommended Posts

  • Administrators
Posted

Скачать:
Релиз доступен только по запросу.

Дата релиза:
22 апреля 2023


Новое

Векторные изображения SVG

Добавлена поддержка векторных SVG изображений. В новой версии добавлен новый тип ресурсов - SVG изображение. В него вы можете загрузить SVG файл в дизайнере ресурсов для дальнейшего использования в компонентах. Добавление SVG изображения доступно в дизайнере ресурсов: Project -> FGX Assets Manager. При использовании данного изображения в компонентах, происходит автоматическое формирование растрового изображения TfgBitmap с требуемым текущим коэффициентом масштабирования окна и указанным размером иконки. При этом логический размер (dp, без учета коэффициента масштабирования) иконки указывается в окне редактирования SVG файла.

Мы проверили наш SVG парсер на иконках разных поставщиков от MaterialDesign, Microsoft Visual Studio Icons и до Icons 8. Однако, стандарт SVG довольно большой и написать за такое короткое время полноценный парсер задача довольно непростая. Несмотря на это, мы хотели бы, чтобы вы делились с нами SVG файлами, которые не смогут прочитаться или отобразиться корректно. Это поможет нам оперативнее расширять парсер в тех направлениях, которые нужны для отображения массовых SVG изображений. 

При загрузке изображения в дизайнере, у иконки появится специальный значок ошибки, если она не поддерживается.

TfgCanvas

Матрицы преобразования

Добавлена возможность использовать матрицы преобразования. Для того, чтобы получить текущую матрицу преобразования или задать новую, используйте свойство TfgCanvas.Matrix. При помощи матриц преобразований, можно совершать любые аффинные преобразования над рисуемыми объектами.

Например, чтобы выполнить масштабирование рисуемой фигуры в 2 раза, можно использовать такой код:

Canvas.Matrix := TMatrix.CreateScale(2) * Canvas.Matrix;

Сохранение состояний

Теперь в процессе отрисовки на канве ```TfgCanvas``` вы можете сохранять и восстанавливать состояние канвы. В качестве состояния канвы сохраняются параметры кисти и текущая матрица преобразования. Типичный сценарий работы с состояниями может выглядеть так:

var  
  State: IFGXCanvasState;
  
State := Canvas.SaveState;
try
  // Модифицируем матрицу трансформации, параметры кистей
  // Выполняем отрисовку
finally
  Canvas.RestoreState(State);
end;

TfgSvgPath

Реализована поддержка отрисовки дуг в SVG Path. Теперь мы поддерживаем все команды отрисовки Path по стандарту SVG.

  • Исправлено отображение команды T и Q в TfgSvgPath.

Nullable

Добавлена своя реализация типа FGX.Types.TfgNullable. Этот тип позволяет указать Null значение.

Улучшения 🙌

Дизайнер ассетов

Теперь вы можете выполнять поиск SVG иконок среди поставляемых иконок Material Design. Помимо этого теперь вы можете кидать любые файлы прямо в дерево дизайнера. В зависимости от расширения, будет создан соответствующий тип ресурса.

TfgGradient

Улучшена работа с точками градиента. Теперь точки градиента хранятся в коллекции. Получить коллекцию точек можно через свойство TfgGradient.Points. Благодаря использования коллекции, теперь можно использовать пакетное изменение точек при помощи методов TfgGradient.Points.BeginUpdate и TfgGradient.Points.BeginUpdate.

  • Градиент с более, чем двумя точками, не рисовался (Android).

Android API

Добавлена трансляция типа android.os.Environment.

Исправление ошибок 🐛

  • Like 4
  • Thanks 1
Posted (edited)

Судя по всему, с исправлением ошибки Enabled, по-крайней мере у меня, что-то пошло не так. Подробно пока не смотрел, но ни одно поле в работающем до обновления приложении, недоступно. Так, как будто Enabled = False.

Edited by dervish00
пунктуация
  • Administrators
Posted
25 minutes ago, dervish00 said:

Судя по всему, с исправлением ошибки Enabled, по-крайней мере у меня, что-то пошло не так. Подробно пока не смотрел, но ни одно поле в работающем до обновления приложении, недоступно. Так, как будто Enabled = False.

У кого-то из компонентов предков стоит Enabled = False ?

Posted

В чем проблема нашёл. Как решить - пока не знаю. Дело в том, что формы-фреймы встраиваются в лайаут, который лежит на Content дровера. При открытии некоторых форм я закрываю доступ к дроверу, делаю его Enabled = False и ToggleControl = nil, соответственно, как я понимаю, у всех дочерних элементов Enabled становится False. Я сразу же попробовал поставить для моего лайаута Enabled = True, но, как ни странно, не помогает. Вот мой код:

procedure DisableDrawer;
begin
   Drawer.Enabled := False;
   ContentForFrame.Enabled := True; // эту строку добавил, но не помогает
   Drawer.ToggleControl := nil;
   NavBar.OnNavigationIconTap := OnNavigationIconTap;
end;

procedure EnableDrawer;
begin
   Drawer.Enabled := True;
   Drawer.ToggleControl := NavBar;
   OnNavigationButtonTap := nil;
end;

но это еще не все проблемы с новой версией: что-то перестали нормально тапаться элементы TCollectionView. Раз двадцать тапнешь, и вдруг, о чудо, она выделилась. И здесь точно не связано с Enabled, т.к. это для тех форм, у которых дровер не запрещаю.

  • Administrators
Posted
13 hours ago, dervish00 said:

В чем проблема нашёл. Как решить - пока не знаю. Дело в том, что формы-фреймы встраиваются в лайаут, который лежит на Content дровера. При открытии некоторых форм я закрываю доступ к дроверу, делаю его Enabled = False и ToggleControl = nil, соответственно, как я понимаю, у всех дочерних элементов Enabled становится False. Я сразу же попробовал поставить для моего лайаута Enabled = True, но, как ни странно, не помогает.

Нужен демо-проект. Вы мне показываете часть кода, который мне не много о чем-то говорит. 

13 hours ago, dervish00 said:

но это еще не все проблемы с новой версией: что-то перестали нормально тапаться элементы TCollectionView. Раз двадцать тапнешь, и вдруг, о чудо, она выделилась. И здесь точно не связано с Enabled, т.к. это для тех форм, у которых дровер не запрещаю.

В этом релизе никаких изменений, связанных с CollectionView не было. Поэтому если вы считаете, что они появились и есть какие-то проблемы, то скидывайте проект, на котором это можно воспроизвести. Я посмотрю.

P.S. Так решение будет продуктивнее. Если в вашем проекте ошибка, то вы ее таким образом найдете. Если Вы не можете найти решение, то опять же демо-проект поможет мне вам быстрее помочь и предложить решение. И если же действительно есть ошибка, то демо-проект даст возможность оперативно поправить ее и выпустить исправление.

Posted

Да, понятно. Готовлю демо-проект. Это займёт какое-то время. Просто весь "боевой" передавать, кмк, нет смысла - Вы в нём разбираться будете долго, жалко Ваше время.

А то, что случилось с TCollectionView - это точно новый релиз.

Posted (edited)
В 22.04.2023 в 22:01, Yaroslav Brovin сказал:

TfgCollectionView не отображал свои элементы при использовании отступов (iOS).

У меня TfgCard (которые не тапаются) лежат с отступами. Только вот не iOS, а Android.

Добавлю: как раз и ощущение, что выделяется карточка тогда, когда я попадаю в этот отступ

Edited by dervish00
Добавил
×
×
  • Create New...