Jump to content

Yaroslav Brovin

Administrators
  • Content Count

    224
  • Joined

  • Last visited

  • Days Won

    33

Yaroslav Brovin last won the day on February 24

Yaroslav Brovin had the most liked content!

Community Reputation

178 Excellent

1 Follower

About Yaroslav Brovin

  • Birthday September 10

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Ошибка в том, что размер битмапа имеет ограничение. Ошибка будет поправлена.
  2. Можно же на базе кард панели сделать. Там можно менять радиус скругления. Бонусом будет тень
  3. Скачать: setup_1.1.0.1_trial.zip Дата релиза: 10 февраля 2020 Список изменений: ~ Теряется обратная совместимость: - Методы TfgMap для работы с маркерами выделены в отдельный класс-список (property Markers). * Улучшения в TfgMap: - Добавлены новые объекты: кривая, полигон, круг (Polyline, Polygon, Circle). - Добавлена возможность программного отображения/скрытия информационного окна маркера (IsInfoWindowVisible). - Добавлены события перетаскивания маркера. - Оптимизация скорости добавления маркеров. - Всем объектам карты добавлено свойство Tag для хранения произвольных пользовательских данных. - Для всех объектов карты добавлены мегаконструкторы со всеми возможными вариантами настроек. * Общие улучшения в области управления ресурсами Assets: - Уменьшено количество повторно срабатываемых вызовов событий изменения ресурсов цвета. Это незначительно ускоряет загрузку приложения. - Ускорена загрузка ресурсов при старте приложения. - Добавлен новый расширенный метод получения имен ресурсов GetAssetsNames позволяющий отфильтровать ресурсы по заданным критериям. * Улучшение в дизайнере: - Обновление отображение значение свойств в инспекторе объектов типа TfgAssetName (TintColorName, ColorName, BackgroundName и тд). Теперь, если пользователь не указал свое значение, то дизайнер отрисовывает бледным цветом название ресурса из темы, которое компонент использует по умолчанию. Данное улучшение помогает наглядно понять, откуда компонент берет тот или иной цвет. - #420 [TfgComboBox] В Design Time не меняется значение, выбранное посредством ItemIndex https://gitlab.com/y.brovin/fgx/issues/420 - Исправлена одна из ошибок, возникающая при сохранение дизайнера ресурсов, если в этот же момент в среде была открыта форма c TfgNavigationBar. * Дизайнер ресурсов: - Переработан мастер генерации маски. Улучшен внешний вид, мелкие исправления UI/UX. Теперь превью маски динамически перестраивается при изменении параметров маски. - Переработано окно импорта изображений с сайта Materila IO Icons. - Переработано окно генерации темы. - Теперь при генерации прямоугольниой маски со скруглением автоматически задаются отступы для 9-patch. - #436 [AssetsManager] При добавлении маски, поле Corner radius накладывается на кнопку Generate https://gitlab.com/y.brovin/fgx/issues/436 - Раньше не работали настройки оттенка цветов на главном и второстепенных цветах. Теперь это исправлено * Деплой файлов: - Убраны дубликаты classes.dex, теперь в списке присутствует только один актуальный файл. - При добавлении пользовательского classes.dex, стандартный файл автоматически отключается (пользовательский файл должен быть правильно настроен: активен, remote path = "classes\", remote name = "classes.dex"). * Улучшение в TfgCollectionView: - Исправлена ошибка, приводящая к подтормаживанию выделения элементов длинных списков, прокрученных к ближе к концу. - Исправлены визуальные артефакты при выделении элементов списка. - #376 [CollectionView] При обновлении выделения оно моргает https://gitlab.com/y.brovin/fgx/issues/376 * Улучшения в TfgPageControl: - Ускорено применение TintColor для вкладок. Теперь применение оттенка происходит мгновенно без каких-либо задержек. - Исправлен метод AddPage, который падал с исключением. - Исправлена ошибка удаления вкладки, которая приводила к тому, что у других вкладок мог пропадать контент. - Исправлена ошибка удаления последней вкладки, которая раньше приводила к исключению. * Улучшения в TfgApplicationEvents: - Теперь при кидании компонента на форму, автоматически подключается модуль FGX.Platform, содержащий необходимые типы данных. * Улучшения в TfgButton: - Раньше, если для кнопки указан свой фон через свойство BackgroundName, то кнопка теряла эффект нажатия. Теперь это не так. И динамически применяется эффект с расходящимися кругами. * Улучшения в TfgToast: - #435 [TfgToast] исключение при пустой строке сообщения https://gitlab.com/y.brovin/fgx/issues/435 * Инсталятор: - В инсталлятор включен fgx.dcp, позволяющий разрабатывать и регистрировать свои собственные компоненты на базе FGX Native. * Новые демо проекты: - "Компоненты" -> "TfgMap" -> "Создание пользовательских объектов карты" - "События" -> "Виртуальная клавиатура" -> "Появление виртуальной клавиатуры" * Исправление демо проектов: - "Компоненты" -> "TfgMemo" -> "Автосайз". Раньше не верно выполнялся автоматический расчет размера поля ввода, из-за чего он не обновлял свой актуальный размер.
  4. На самом деле имеет 😄 Как раз для ситуаций централизованного управления объектами по типу Dispatch, когда точка входа одна, а потом происходит просто выбор нужного обработчика.
  5. В теории все можно сделать. Но тут вопрос в степени необходимости работать с Java. В данном случае придется писать свои джава классы, сливать их в библиотеку, подключать и много чего делать руками.
  6. Мы будем над этим работать позже. Пока есть ограничения от самой реализации IDE, которая принудительно затирает наш список jar библиотек библиотеками от FMX, Что в итоге приводит к неправильному формированию результирующего classes.dex файла. Но по скольку на этом построена работа сервисов в IDE, нам в любом случае придется решить этот вопрос, возможно даже через какое-то обходное решение.
  7. Несколько моих мыслей на этот счет: В iOS внутри будет по другому. А если еще добавиться какой-нибудь OpenStreeMaps или YandexMap, то там будет другое API. Поэтому задача библиотеки предоставить универсальное API, которое вы сможете одинаково использовать на любой платформе и любой внутренней реализации. На текущий момент разработанное API - это позволяет сделать и для iOS в том числе. Для самообучения и сравнения обязательно нужно изучать разные варианта API, чтобы предоставить правильный и удобный функционал, НО не всегда надо зеркально отражать его же в обертках. Обертка должна быть синтезом достоинств разных API, собранных воедино. При этом, там как раз на каждый тип объекта предлагается свой набор листенеров. Я полагаю, что именно по причине, что обезличенная работа с объектами карты не такой частый кейс, как может показаться. Именно за счет того, что разные объекты по разному наносятся интерактивно на карты. Полилиния через последовательность точек и их редактирование, а маркеры и круги по другому. Если бы библиотека была бы решением одной конкретной задачи одного клиента, то тогда в либе было бы на порядок всего меньше, чем есть на текущий момент. Отличие универсального решения от индивидуального/частного, как раз и заключается в повторном использовании кода. Когда сегодня вы делаете на базе платформы информационную систему для банка, а завтра на ней же делаете расчет параметров полета ракеты и визуализации. Конечно у нас тут не полет ракеты и возможности уже, однако, правило "полезности" разработанного API всегда используется. Да, можно четко следовать принципу Оккама и делать минимальное самодостаточное АПИ. Есть множество примеров таких библиотек. Достаточно взять Open GLES, в основу которого и положен этот принцип. Этот принцип идеально подходит для решения задач поддержания совместимость. Именно по этому стандарт Open GLES, как раз предлагает минимум, чтобы разработчики мобильных ОС и производителей GPU карт, поддерживали только минимальный набор методов. То же касается в какой-то степени и набора инструкций процессора. Это область, где изменение типа инструкций стоит очень дорого для разработчиков ПО. Как вы могли проследить в этих примерах, с одной стороны вы получаете минималистическое АПИ для решения любой задачи, но с другой - теряете удобство использования за счет минимизации разнообразия API. Что в конечном итоге рано или поздно приведет к появлению высокоуровневой обертке - хелперы. Я уверен, что и у вас в том числе если свои хелпер классы и модули для решения часто встречаемых задач для VCL, FMX, БД и других областей. Самый простой пример - это уровень языка программирования. Есть минималистический ассемблер, есть С++, а есть Делфи. И вы пользуетесь последним инструментов, потому что он позволяет решить ваши задачи проще, чем на предыдущих двух. Прежде, чем добавить событие, настройку или метод, мы всегда оперируем возможными ситуациям клиентов. В конкретном случае, объединение объектов под один базовый класс в дальнейшем поможет с легкостью предоставить методы для универсальной работы с обезличенной природой объекта. Например, для операций очистки объектов в одной категории и для работы сгруппированных объектов по смыслу в так называемые слои (не исключая появления в будущем отдельной сущности слоя). Если же мы говорим про наличие такого количества событий, то с одной стороны, можно предоставить одно агрегированное событие с обезличенными объектами. Этот подход поможет всю логику обработки всех объектов сосредоточить в одном месте и реализовать централизованный диспатчер. Особенно это удобно, если логика обработки объектов вынесена за пределы формы. И я считаю, что мы обязательно добавим такое событие в дополнение к текущим, так как это реальный кейс. Но с другой стороны, нельзя делать только одно такое универсальное событие, так как это побудит разработчиков с большой долей вероятности в конечном итоге приводить объекты к нужным классам, что снизит порог вхождения для работы с классами и увеличит количество "лишнего" кода. А я хочу напомнить, что в библиотеки я стараюсь сокращать клиентский код по работе с UI, чтобы пользователь концентрировался на бизнес процессах и правильной архитектуре приложения, а не писал монструозные формы на 100500 строк кода. Поэтому у карты в заключении должны быть, как общие события, так и частные. P. S. Если нужно централизованное событие, то можем добавить его в следующий релиз. Благо все уже готово, чтобы это сделать.
  8. Пройдите, пожалуйста, опрос, чтобы понять о необходимости поддержки старой версии IDE 10.2. На текущий момент 10.2 не поддерживает: Android 64-bit Firebase Push уведомления. Поэтому целесообразность в поддержке 10.2 постепенно падает.
  9. Hello, Unfortunately this demo is available only for subscribers. It was developed only for webinar purpose and doesn't really a good example of coding style and etc. It contains some bugs and etc. So I don't provide this demo as a base. Thank you
  10. Всё исправлено в 1.1.0.0.
  11. Проблему с исчезновение нижней линии на первой вкладке исправил. Над остальными ошибками в процессе выполнения.
  12. значит. это у вас в самой среде проблема. Возможно вы не удаляли 10.3 перед установкой обновления. Это, вроде, как требуемая операция. Вам нужно удалить (предварительно сохранив копии в другом месте) библиотеки с 7.0 на конце из папки "c:\program files (x86)\embarcadero\studio\20.0\lib\android\Debug\" и попробовать сделать новый проект. Все должно встать на свои места. Или полностью удалить среду и установить заново.
  13. По идеи это не должно влиять. Но у вас неверный список jar лиц по умолчанию. Там точно не должно быть никаких 7.0 версий. Для нового fmx пропета среди библиотек есть эти версии с 7.0? После Revert To Default для FGX проекта, проблема прошла?
×
×
  • Create New...