Jump to content

Yaroslav Brovin

Administrators
  • Posts

    2,584
  • Joined

  • Last visited

  • Days Won

    652

Everything posted by Yaroslav Brovin

  1. Как я указал в заметках к релизу 1.1.2.0 исправления камеры будут в следующем релизе. Сам сканер баркодов работает без ошибок. Ключевым компонентом в распознавании баркодов является связь с камерой, на которую все завязано. В камере есть ряд проблем, которые возникают на некоторых устройствах. Эти недоработки будут устранены в следующем релизе. После чего на всех устройствах сканер будет работать в связке с камерой без проблем. Ваш пример рабочий, хотя и использует устаревшее апи камеры Camera API 1.0. Из недостатков этого уровня API, например, оно не совместимо с TfgCamera, поскольку в библиотеке используется современная версия Camera API 2.0. Ну и использование готового кроссплатформенного компонента библиотеке в конечном итоге удобнее для будущего запуска приложения на iOS. Повторюсь, проблемы с камерой будут устранены в следующей версии.
  2. В принципе можно. Завел задачку: https://gitlab.com/y.brovin/fgx/-/issues/474
  3. Мы не поддерживаем пиратские версии и не поощряем это. Ответ на первоначальный вопрос был дан выше. На этом тему закрываем.
  4. Новый компонент распознавания баркодов добавлен в 1.1.2.0.
  5. Скачать: Релиз доступен только по запросу. Дата релиза: 4 марта 2020 Список изменений: Внимание! Исправление ошибок камеры будет в следующем релизе. * Новый компонент - сканер баркодов TfgBarcodeScanner: - Позволяет выполнять распознавание баркодов на переданном буфере TfgBitmap. - Позволяет выполнять распознавание баркодов на непрерывном потоке кадров с прикрепленной камеры TfgCamera. - Поддерживает распознавании множества разных форматов баркодов: EAN13, EAN8, UPCA, UPCE, Code39, Code93, Code128, ITF, Codabar, QRCode, DataMatrix, PDF417, AZTEC. - Может распознавать несколько баркодов на одном изображении. При этом возвращает координаты границ расположения баркодов на исходном изображении. * Улучшение TfgCamera: - Динамическое подключение/отключение потребителей камеры. - Теперь камера работает стабильнее, Однако исправление текущих отчетов об ошибках будет выполнено в следующем релизе. * Обновлен шаблона манифеста андроид приложения: - Добавлено значение android:launchMode="singleInstance". FGX Native приложение не может существовать в нескольких экземплярах в рамках одного устройства. Это исправляет проблему получения интентов от других приложений. https://forum.fgx-native.com/topic/129-android-api-%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%B8%D0%BD%D1%8F%D1%82%D1%8C-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-%D0%B8%D0%B7-%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B3%D0%BE-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F * #460 [AssetManager] Мастер создания маски, не даёт ввести радиус скругления с клавиатуры https://gitlab.com/y.brovin/fgx/issues/460 * Улучшения в TfgSvgPath: - #452 [TfgSvgPath] Некорректная отрисовка и ошибка на команде "z" https://gitlab.com/y.brovin/fgx/issues/452 * Улучшения в дизайнере: - #455 [Дизайнер] Изменение AligmentOrder не вызывает изменения на форме https://gitlab.com/y.brovin/fgx/issues/455
  6. Добрый вечер, Вы спрашиваете о том, чтобы добавить такой функционал в будущем или про его наличие в текущей версии?
  7. Скачать: Релиз доступен только по запросу. Дата релиза: 22 февраля 2020 Список изменений: * Улучшения в платформе: - Добавлен новый сервис для получения информации о доступных экранах устройства FGX.Screen.TfgScreenManager. https://gitlab.com/y.brovin/fgx/issues/381 * Улучшения дизайнера ресурсов: - #447 [Assets Manager] при добавлении ресурса изображения с существующим именем, теряются все ресурсы https://gitlab.com/y.brovin/fgx/issues/447 - Раньше при отображении иконки на панели превью, использовался логический размер. В результате чего, иконки для всех скейлов всегда физически имели один и тот же размер в панели. Теперь иконка отображается в реальном размере. - При попытке удалить (кнопкой Delete) текст из поля "Оттенок" в превью отображения изображения сбрасывается фокус. Исправлено. * Улучшение в дизайнере: - При вставке компонента из буфера обмена в контрол, не являющийся контейнером, вставка будет осуществлена в первый найденный по иерархии контейнер, начиная с родителя активного контрола (ранее выбрасывалось исключение). - #389 Невизуальные компоненты (TfgTimer, TfgCamera, TfgApplicationEvents) больше не отображаются в палитре компонентов для других фреймворков (vcl, fmx). https://gitlab.com/y.brovin/fgx/issues/389 * Улучшение в TfgImage: - #321 Неверно работает TfgImage.ImageMode в рантайм. Исправлены режимы отображения AspectFit, AspectFill в рантайме. https://gitlab.com/y.brovin/fgx/issues/321 - Задание TfgImage огромного размера приводило к падению приложения. Исправлено. * Улучшения TfgCollectionView: - Добавлен новый метод, который позволяет найти обертку элемента списка по объекту, которые ему принадлежит. * Улучшения TfgSvgPath: - Некорректно обрабатывалась команда Move с набором точек, что приводило к тому, что ломанная линия не отображалась. * Система выравнивания Flex: - Обновлена версия системы выравнивания Facebook Flex c 1.14 до 1.18. * Улучшения TfgScrollBox: - Исправлены методы прокрутки содержимого в горизонтальном и вертикальном скроллбоксах. - #449 [TfgScrollBox, TfgVerticalScrollBox] В дизайнере и рантайме не учитывается свойство Padding: Bottom, а также происходит перекрытие границ последнего компонента https://gitlab.com/y.brovin/fgx/issues/449 - Временно скрыт с палитры компонент TfgScrollBox, так как он не поддерживает горизонтальную прокрутку. - #393 В ScrollBox компоненты что скрыты, ловят нажатие мышки https://gitlab.com/y.brovin/fgx/issues/393 * Улучшения TfgComboBox: - При использовании TfgEdit вместе с TfgComboBox на устройствах Андроид с версией 26+ могло наблюдаться зависание приложения при установки фокуса в поле ввода TfgEdit. * Улучшение в TfgTimeEdit и TfgDateEdit: - Добавлено новое свойство IsEmpty позволяющее не отображать текущее значение в Text вплоть до изменения даты и(или) времени или ручного сброса IsEmpty. * Улучшение в TfgNavigationBar: - #442 [TfgNavigationBar] В дизайнере текст находится выше общей линии расположения элементов https://gitlab.com/y.brovin/fgx/issues/442 * Java-Delphi мост: - Убраны методы GetWrapperClass из всех оберток, так как это метод больше не требуется. - Обновлены все Java хедеры до актуального состояния. * Новые демо проекты: - "Компоненты" -> "TfgCollectionView" -> "Пропорциональные размеры элементы" - "Android Api" -> "Прием намерений" * Исправление демо проектов: - "Компоненты" -> "TfgWebBrowser" -> "Пример выполнения Javascript кода и получение результата". Исправлена сборка демо-проекта.
  8. Исправлено в 1.1.1.0. Теперь при такой ситуации дизайнер генерирует уникальное имя для ресурса с конфликтным именем.
  9. Ошибка в том, что размер битмапа имеет ограничение. Ошибка будет поправлена.
  10. Можно же на базе кард панели сделать. Там можно менять радиус скругления. Бонусом будет тень
  11. Скачать: Релиз доступен только по запросу. Дата релиза: 10 февраля 2020 Список изменений: В версии 1.1.0.0 была проведена работа над оптимизацией работы ресурсов. В результате появилось две ошибки. Они исправлены в этом релизе. * Исправление работы TfgButton.Kind свойства. В предыдущей версии в связи с добавлением возможности делать анимированный произвольный фон у кнопки, поломался прозрачный режим отображения кнопки. Исправлено. * #440 [AssetsManager] При создании нового проекта не применяется добавленную тему https://gitlab.com/y.brovin/fgx/issues/440 * #441 [AssetsManager] При изменении цвета или добавлении новых ресурсов сбрасывает тему для компонентов и формы https://gitlab.com/y.brovin/fgx/issues/441
  12. На самом деле имеет ? Как раз для ситуаций централизованного управления объектами по типу Dispatch, когда точка входа одна, а потом происходит просто выбор нужного обработчика.
  13. К сожалению TfgSсrollBox не поддерживает горизонтальную прокрутку. И чтобы не вводить пользователя в заблуждения месяц назад я добавил два отдельных компонента: TfgVerticalScrollBox и TfgHorizontalScrollBox.
  14. В теории все можно сделать. Но тут вопрос в степени необходимости работать с Java. В данном случае придется писать свои джава классы, сливать их в библиотеку, подключать и много чего делать руками.
  15. Мы будем над этим работать позже. Пока есть ограничения от самой реализации IDE, которая принудительно затирает наш список jar библиотек библиотеками от FMX, Что в итоге приводит к неправильному формированию результирующего classes.dex файла. Но по скольку на этом построена работа сервисов в IDE, нам в любом случае придется решить этот вопрос, возможно даже через какое-то обходное решение.
  16. Несколько моих мыслей на этот счет: В iOS внутри будет по другому. А если еще добавиться какой-нибудь OpenStreeMaps или YandexMap, то там будет другое API. Поэтому задача библиотеки предоставить универсальное API, которое вы сможете одинаково использовать на любой платформе и любой внутренней реализации. На текущий момент разработанное API - это позволяет сделать и для iOS в том числе. Для самообучения и сравнения обязательно нужно изучать разные варианта API, чтобы предоставить правильный и удобный функционал, НО не всегда надо зеркально отражать его же в обертках. Обертка должна быть синтезом достоинств разных API, собранных воедино. При этом, там как раз на каждый тип объекта предлагается свой набор листенеров. Я полагаю, что именно по причине, что обезличенная работа с объектами карты не такой частый кейс, как может показаться. Именно за счет того, что разные объекты по разному наносятся интерактивно на карты. Полилиния через последовательность точек и их редактирование, а маркеры и круги по другому. Если бы библиотека была бы решением одной конкретной задачи одного клиента, то тогда в либе было бы на порядок всего меньше, чем есть на текущий момент. Отличие универсального решения от индивидуального/частного, как раз и заключается в повторном использовании кода. Когда сегодня вы делаете на базе платформы информационную систему для банка, а завтра на ней же делаете расчет параметров полета ракеты и визуализации. Конечно у нас тут не полет ракеты и возможности уже, однако, правило "полезности" разработанного API всегда используется. Да, можно четко следовать принципу Оккама и делать минимальное самодостаточное АПИ. Есть множество примеров таких библиотек. Достаточно взять Open GLES, в основу которого и положен этот принцип. Этот принцип идеально подходит для решения задач поддержания совместимость. Именно по этому стандарт Open GLES, как раз предлагает минимум, чтобы разработчики мобильных ОС и производителей GPU карт, поддерживали только минимальный набор методов. То же касается в какой-то степени и набора инструкций процессора. Это область, где изменение типа инструкций стоит очень дорого для разработчиков ПО. Как вы могли проследить в этих примерах, с одной стороны вы получаете минималистическое АПИ для решения любой задачи, но с другой - теряете удобство использования за счет минимизации разнообразия API. Что в конечном итоге рано или поздно приведет к появлению высокоуровневой обертке - хелперы. Я уверен, что и у вас в том числе если свои хелпер классы и модули для решения часто встречаемых задач для VCL, FMX, БД и других областей. Самый простой пример - это уровень языка программирования. Есть минималистический ассемблер, есть С++, а есть Делфи. И вы пользуетесь последним инструментов, потому что он позволяет решить ваши задачи проще, чем на предыдущих двух. Прежде, чем добавить событие, настройку или метод, мы всегда оперируем возможными ситуациям клиентов. В конкретном случае, объединение объектов под один базовый класс в дальнейшем поможет с легкостью предоставить методы для универсальной работы с обезличенной природой объекта. Например, для операций очистки объектов в одной категории и для работы сгруппированных объектов по смыслу в так называемые слои (не исключая появления в будущем отдельной сущности слоя). Если же мы говорим про наличие такого количества событий, то с одной стороны, можно предоставить одно агрегированное событие с обезличенными объектами. Этот подход поможет всю логику обработки всех объектов сосредоточить в одном месте и реализовать централизованный диспатчер. Особенно это удобно, если логика обработки объектов вынесена за пределы формы. И я считаю, что мы обязательно добавим такое событие в дополнение к текущим, так как это реальный кейс. Но с другой стороны, нельзя делать только одно такое универсальное событие, так как это побудит разработчиков с большой долей вероятности в конечном итоге приводить объекты к нужным классам, что снизит порог вхождения для работы с классами и увеличит количество "лишнего" кода. А я хочу напомнить, что в библиотеки я стараюсь сокращать клиентский код по работе с UI, чтобы пользователь концентрировался на бизнес процессах и правильной архитектуре приложения, а не писал монструозные формы на 100500 строк кода. Поэтому у карты в заключении должны быть, как общие события, так и частные. P. S. Если нужно централизованное событие, то можем добавить его в следующий релиз. Благо все уже готово, чтобы это сделать.
  17. Скачать: Релиз доступен только по запросу. Дата релиза: 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" -> "Автосайз". Раньше не верно выполнялся автоматический расчет размера поля ввода, из-за чего он не обновлял свой актуальный размер.
  18. Подскажите, пожалуйста. Когда вы получаете эту ошибку, у вас открыто сразу два проекта в среде: FMX и FGX Native?
  19. Очень нужно, чтобы вы смогли описать шаги для воспроизведения проблемы. Тогда я смогу оперативно ее поправить. У меня не получается воспроизвести ошибку.
  20. 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
×
×
  • Create New...