Jump to content

Yaroslav Brovin

Administrators
  • Posts

    2,567
  • Joined

  • Last visited

  • Days Won

    647

Everything posted by Yaroslav Brovin

  1. Добрый день. Возможно, вы устанавливали библиотеку при открытой среде, в результате чего пути, которые использует библиотека были не добавлены. Нужно убедиться или добавить: "Главное Меню -> Tools -> Options -> Language -> Delphi -> Library". Если используется 10.3, то в путях ниже использовать суффикс 260, если 10.4, то 270. Android 32-bit Library Path: $(BDSLIB)\$(PLATFORM)\Release;$(FGX)\Libs\260\Android\Release;$(FGX)\Libs\Common\Android\Debug\armeabi-v7a Browsing Path: $(BDS)\OCX\Servers;$(BDS)\SOURCE\VCL;$(BDS)\SOURCE\VCL\AppAnalytics;$(BDS)\source\rtl\common;$(BDS)\SOURCE\RTL\SYS;$(BDS)\source\rtl\android;$(BDS)\source\ToolsAPI;$(BDS)\SOURCE\IBX;$(BDS)\source\Internet;$(BDS)\SOURCE\PROPERTY EDITORS;$(BDS)\source\soap;$(BDS)\SOURCE\XML;$(BDS)\source\Indy10\Core;$(BDS)\source\Indy10\System;$(BDS)\source\Indy10\Protocols;$(BDS)\source\fmx;$(BDS)\source\databinding\components;$(BDS)\source\databinding\engine;$(BDS)\source\databinding\graph;$(BDS)\source\data;$(BDS)\source\data\ado;$(BDS)\source\data\bde;$(BDS)\source\data\cloud;$(BDS)\source\data\datasnap;$(BDS)\source\data\dbx;$(BDS)\source\data\dsnap;$(BDS)\source\data\Test;$(BDS)\source\data\vclctrls;$(BDS)\source\rtl\posix;$(BDS)\source\rtl\posix\osx;$(BDS)\source\data\datasnap\connectors;$(BDS)\source\data\datasnap\proxygen;$(BDS)\source\DataExplorer;$(BDS)\source\DUnit\Contrib\DUnitWizard\Source\Common;$(BDS)\source\DUnit\Contrib\DUnitWizard\Source\Common\dunit;$(BDS)\source\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\Common;$(BDS)\source\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject;$(BDS)\source\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\dunit;$(BDS)\source\DUnit\src;$(BDS)\source\DUnit\tests;$(BDS)\source\Experts;$(BDS)\source\indy\abstraction;$(BDS)\source\indy\implementation;$(BDS)\source\indyimpl;$(BDS)\source\LiveTile;$(BDS)\source\Property Editors\Indy10;$(BDS)\source\soap\wsdlimporter;$(BDS)\source\Visualizers;$(BDS)\source\xtab;$(BDS)\source\DUnit\Contrib\XMLReporting;$(BDS)\source\DUnit\Contrib\XPGen;$(BDS)\source\data\rest;$(BDS)\source\data\firedac;$(BDS)\source\tethering;$(BDS)\source\DUnitX;$(BDS)\source\data\ems;$(BDS)\source\rtl\net;$(BDS)\source\FlatBox2D;$(FGX)\Sources Debug DCU Path: $(BDSLIB)\$(PLATFORM)\debug;$(FGX)\Libs\260\Android\Debug Android 64-bit Library Path: $(BDSLIB)\$(PLATFORM)\Release;$(FGX)\Libs\260\Android64\Release;$(FGX)\Libs\Common\Android\Debug\arm64-v8a Browsing Path: $(BDS)\OCX\Servers;$(BDS)\SOURCE\VCL;$(BDS)\SOURCE\VCL\AppAnalytics;$(BDS)\source\rtl\common;$(BDS)\SOURCE\RTL\SYS;$(BDS)\source\rtl\android;$(BDS)\source\ToolsAPI;$(BDS)\SOURCE\IBX;$(BDS)\source\Internet;$(BDS)\SOURCE\PROPERTY EDITORS;$(BDS)\source\soap;$(BDS)\SOURCE\XML;$(BDS)\source\Indy10\Core;$(BDS)\source\Indy10\System;$(BDS)\source\Indy10\Protocols;$(BDS)\source\fmx;$(BDS)\source\databinding\components;$(BDS)\source\databinding\engine;$(BDS)\source\databinding\graph;$(BDS)\source\data;$(BDS)\source\data\ado;$(BDS)\source\data\bde;$(BDS)\source\data\cloud;$(BDS)\source\data\datasnap;$(BDS)\source\data\dbx;$(BDS)\source\data\dsnap;$(BDS)\source\data\Test;$(BDS)\source\data\vclctrls;$(BDS)\source\rtl\posix;$(BDS)\source\rtl\posix\osx;$(BDS)\source\data\datasnap\connectors;$(BDS)\source\data\datasnap\proxygen;$(BDS)\source\DataExplorer;$(BDS)\source\DUnit\Contrib\DUnitWizard\Source\Common;$(BDS)\source\DUnit\Contrib\DUnitWizard\Source\Common\dunit;$(BDS)\source\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\Common;$(BDS)\source\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject;$(BDS)\source\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\dunit;$(BDS)\source\DUnit\src;$(BDS)\source\DUnit\tests;$(BDS)\source\Experts;$(BDS)\source\indy\abstraction;$(BDS)\source\indy\implementation;$(BDS)\source\indyimpl;$(BDS)\source\LiveTile;$(BDS)\source\Property Editors\Indy10;$(BDS)\source\soap\wsdlimporter;$(BDS)\source\Visualizers;$(BDS)\source\xtab;$(BDS)\source\DUnit\Contrib\XMLReporting;$(BDS)\source\DUnit\Contrib\XPGen;$(BDS)\source\data\rest;$(BDS)\source\data\firedac;$(BDS)\source\tethering;$(BDS)\source\DUnitX;$(BDS)\source\data\ems;$(BDS)\source\rtl\net;$(BDS)\source\FlatBox2D;$(FGX)\Sources Debug DCU Path: $(BDSLIB)\$(PLATFORM)\debug;$(FGX)\Libs\260\Android64\Debug
  2. Скачать: Релиз доступен только по запросу. Дата релиза: 4 сентября 2021 Внимание 🚨 Мы внесли изменение в логику работы события TfgEdit.OnChanged. Теперь на Андроиде это событие вызывается только при окончании ввода текста: потеря фокуса полем ввода или нажатие на кнопку ReturnKey. Если вам необходимо знать о любых изменения текста в поле ввода, вам необходимо использовать событие OnChanging. Новое ✨ FGX Android Log Viewer Появился встроенное средство просмотра логов устройства для Android (logcat). Для запуска выберите меню Project -> FGX Android Log Viewer. TfgDrawerLayout Добавлена поддержка расположения выдвигаемой панели TfgDrawer справа. Новое свойство TfgDrawer.Location позволяет указать расположение панели (Справа или слева). FGX-135 Добавить правое расположение панели для TfgDrawerLayout. Улучшения 🙌 TfgEdit Поле ввода TfgEdit предлагает два события OnChanging и OnChanged. Первое срабатывает при любом изменении текста пользователем. Второе же вызывается в конце ввода текста и предназначен для финальной валидации текста в поле. Однако, на Android событие OnChanged работало так же, как и событие OnChanging и вызывалось при любом изменении текста. В этом релизе мы исправили это, и теперь событие OnChanged работает одинаково на обеих платформах Android и iOS и вызывается в одном из двух случаев: Потеря фокуса; Нажатие кнопки ReturnKey на виртуальной клавиатуре. Помимо этого виртуальная клавиатура на платформе Android всегда имеет кнопку ReturnKey. Поэтому у пользователя всегда есть возможность подтвердить окончание ввода при помощи нажатия на эту кнопку. В iOS такая кнопка тоже есть, однако, она есть не на всех раскладках клавиатуры, что создает для пользователя проблему о том, как сообщить, что текст полностью введен. Для этой ситуации теперь компонент TfgEdit при открытии виртуальной клавиатуры отображает тулбар с кнопкой завершения текстового ввода. TfgVerticalScrollBox/TfgHorizontalScrollBox Добавлена перегруженная верcия метода ScrollTo(AControl), которая позволяет выполнить прокрутку содержимого скроллбокса к началу указанного дочернего компонента. TfgMap Теперь можно получить массив всех объектов карты через методы Markers.ToArray, Polylines.ToArray, Polygons.ToArray или Circles.ToArray. А так же узнать количество через свойства Count. Исправление ошибок 🐛 TfgCollectionView FGX-132 Некорректно работает TfgCollectionView.ScrollToItem (iOS). FGX-133 Некорректно работает TfgCollectionView.GetFirstVisibleItemIndex (iOS). При первом вызове события TfgCollectionView.OnBindItem для элемента, элемент содержал не актуальный размер элемента (iOS). TfgNavigationBar FGX-105 Увеличить область нажатия кнопки Navigation в панели TfgNavigationBar (iOS). FGX-114 Внутренние отступы у кнопок (iOS). При нажатии на пункт меню свернутых кнопок TfgNavigationBar.ActionButtons, выпадающее меню не закрывалось (iOS). TfgDrawerLayout При первом выдвигании панели TfgDrawer пальцем, панель совершала видимый визуальный скачок (iOS). TfgForm Иногда встроенные формы могли быть недоступны для касаний (iOS). FGX-130 TfgForm некорректное отображение размеров координат x и y при изменение ориентации экрана (Android). Прочее TfgScreenManager не учитывал угол поворота экрана при возвращении размера экрана, если телефон лежал на столе (iOS). Неправильно применялся правый отступ TfgEdit.ContentPadding (iOS).
  3. Hello, iOS part is in private testing at this moment and it's available only for subscribers. But despite the fact that it is being tested, some customers have already released their applications and published them in the AppStore. Thank you
  4. Hello, At this moment we don't sell english version. We will officially publish english version, when iOS part is completed. Thank you
  5. Всем хорошей рабочей недели! Год назад мы поделились руководством по подключению популярного сервиса платформы для аналитики и маркетинга приложения Yandex AppMetrica для Android. В этой статье с мы рассмотрим, как начать использовать этот же сервис для iOS платформы. Подключение FGX Native приложения для Android платформы рассмотрено в другой статье: Для того, чтобы начать использовать AppMetrica в вашем приложении нужно выполнить два шага: Зарегистрировать ваше приложение на стороне Yandex Подключить библиотеку Yandex AppMetrika и выполнить инициализацию ключом API. Регистрация приложения в Yandex AppMetrika 1. Создаем новый проект в учетной записи AppMetrika и даем ему название: Затем далее и добавить. По окончании добавления сервис отобразит ваш API ключ, который нужно запомнить. Он будет использовать для взаимодействия вашего приложения и сервиса Yandex AppMetrika. Теперь переходим к настройкам вашего проект, путем нажатия на кнопку настройки проекта в левой панели. Теперь нам необходимо связать наш проект с iOS приложением. Среди большого числа настроек нас интересует вкладка "Основное" -> "Universal Link". Нам необходимо заполнить поля Bundle ID и App Prefix на основании данных вашего iOS приложения, зарегистрированного в портале Apple Developer. AppPrefix - это уникальный префикс, выданный Apple при участии в программе iOS разработчиков. Он же добавляется к названию пакета iOS приложения, тем самым формируя уникальное название приложения. Его можно найти в личном кабинете Apple на вкладке Membership: Bundle ID - это идентификатор пакета вашего FGX Native приложения. Если приложение уже зарегистрировано, то вы можете найти название пакета на сайте Apple в разделе Identifiers. После того, как вы указали все данные, необходимо включить "Использовать Universal Link" - это специальная технология, которая призвана обезопасить передачу статики с устройств пользователя на сервера Yandex. Чтобы закончить настройку, необходимо включить поддержку Universal Link на стороне профиля разработчика Apple. Для этого необходимо открыть настройки приложения в консоли Apple и включить поддержку "Associated Domains". Теперь ваш профиль приложения сконфигурирован для приема статистики с вашего приложения. Переходим к подключению Yandex AppMetrica к FGX Native приложению. Подключение и инициализация Yandex AppMetrica в FGX Native приложении 1. Скачиваем статическую версию AppMetrica SDK. Yandex SDK 3.17.0.zip 2. Скачиваем заголовочные файлы для Delphi. Yandex.Api.MobileMetrica.iOS.pas 3. Скачиваем модуль регистрации и инициализации AppMetrica. Этот модуль содержит код по регистрации вашего приложения в сервисе Yandex для iOS и Android. Yandex.AppMetrica.pas 4. Добавляем модуль в ваш проект и в проектном файле вызываем метод инициализации InitYandexMetrika указанием API ключа, выданном на этапе регистрации проекта в Yandex. program YandexMetrika; uses FGX.Application, FGX.Forms, Form.Main in 'Form.Main.pas' {Form.Main: TfgForm}, Yandex.AppMetrica in 'Yandex.AppMetrica.pas'; {$R *.res} begin InitYandexMetrika('Ваш API ключ'); Application.Initialize; Application.CreateForm(TFormMain, FormMain); Application.Run; end. 5. Настраиваем линковку проекта с Yandex AppMetrica SDK. 5.1. Добавляем в настройках среды переменную окружения "YandexMetrica": "Tools" -> "Options" -> "IDE" -> "Environment Variables". Указываем путь к месту, где у вас распакован AppMetrica SDK. 5.2 В настройках проекта указываем пути для линковки. "Project" -> "Options..." -> "Building" -> "Delphi Compiler" -> "Search Path". Выбираем конфигурацию "All Configuration -> iOS Deice 64-bit platform" и указываем следующие пути в "Search Path": $(YandexMetrica)\YandexMobileMetrica.framework; $(YandexMetrica)\YandexMobileMetricaCrashes.framework 5.3 В настройках линковки передаем дополнительный ключ "-ObjC" линковки: "Project" -> "Options..." -> "Building" -> "Linking" -> "Options passed to the LD linker". 6. Все. Теперь выполняем сборку приложения и запуск на устройстве. В результате ваше приложение должно успешно стартовать, а через некоторое время вы увидите статистику в личном кабинете AppMetrica.
  6. У меня нету проблемы со скачиванием. Но на днях была DDoS атака на хостинг. Возможно, это как-то связано. Сейчас уже все ок должно быть. Скинул релиз в личку.
  7. Download: The distributive is available by request only. Release date: 30 July 2021 Attention 🚨 The Android shell MIUI automatically tries to apply the system dark theme bypassing the standard means Android. Such an attempt to apply the theme can be visually expressed in distorted colors on MIUI, since it redefines the system behavior of pure Android to adapt applications to a dark theme. FGX Native applications haven't support the dark theme provided by the system. Therefore, to avoid color distortion, it is necessary: If the application is old, then add to the file styles.xml line and make a full build of the application: <item name="android:forceDarkAllowed">false</item> If the application is created with this library version, you don't need to do anything. FGX-115 Dim images on a device with a dark theme (Android). Improvements 🙌 TfgNavigationBar The implementation of the component for iOS has been redesigned. Implemented a drop-down menu for collapsed ActionButtons that do not fit on the panel. Now, if the button does not have an icon, its text is displayed. TfgVirtualKeyboard The new event TfgForm.OnVirtualKeyboardBeginFrameChanging was added. It is called at the beginning of the animation of changing the display area of the virtual keyboard. In the event parameters, animation parameters are passed (animation duration, type of interpolation), which you can use to animate your UI to the virtual keyboard. The event is duplicated by broadcasting the message FGX.VirtualKeyboard.TfgOnVirtualKeyboardBeginFrameChangingMessage, which you can catch anywhere in your application. For Android, the new event is called immediately before OnVirtualKeyboardFrameChanged. FGX-113 Changing the phase of the OnFormVirtualKeyboardFrameChanged handler (iOS). Other The new demo sample was added: "Form" -> "Safe area insets". Bug Fixes 🐛 FGX-81 Incorrect alignment TfgNavigationBar.ActionButtons (iOS). FGX-85 Application didn't show splash screen (iOS). FGX-96 TfgCollectionView doesn't support changing item's height in runtime (iOS). FGX-106 Incorrect work of TfgVerticalScrollBox.ScrollBottom (iOS). FGX-108 Wrong form's size in Form.OnCreate (iOS). FGX-109 Error in executing PositionAnimation (Android). FGX-112 TfgEdit.OnChanged didn't work (iOS). FGX-115 Dim images on a device with a dark theme (Android). FGX-116 TfgSVGPath does not render the icon correctly. The TfgForm.OnVirtualKeyboardFrameChanged event could be invoked before complete form loading or creating (iOS). Sometimes the theme could be applied incorrectly for components dynamically added to TfgPopup. The TfgForm.OnSafeAreaChanged event passed an incorrect value of the bottom indent (Android). Removing TfgDrawerLayout or TfgBottomSheetLayout from from led to application crash (iOS). The event TfgMap.OnMapReady was invoked before TfgForm.OnCreate (iOS). Removing form with TfgMap with selected marker led to raising exception (iOS). Tapping marker with current user location on TfgMap led to raising exception (iOS). Creating marker via usage TfgMapMarkerOptions led to incorrect applying Anchor (Android). The anchor point of the marker image has also been changed from the center (0.5, 0.5) to the bottom center point (0.5, 1.0) by default. The default content padding was added to TfgButton (iOS).
  8. Скачать: Релиз доступен только по запросу. Дата релиза: 30 июля 2021 Внимание 🚨 Оболочка MIUI автоматически пытается применить системную темную тему в обход стандартным средствам Android. Такая попытка применения темы может визуально выражаться в искаженных цветах именно на MIUI последних версий, так как она переопределяет системное поведение чистого Android по адаптации приложений к темной теме. Приложения FGX Native пока не поддерживают темную тему, поставляемую системой. Поэтому, чтобы избежать искажения цветов, необходимо: Если приложение старое, то внести в файл styles.xml строчку и выполнить полную сборку приложения: <item name="android:forceDarkAllowed">false</item> Если приложение создано на новой версии библиотеки, то ничего дополнительно делать не нужно. FGX-115 Тусклое изображения на устройстве с темной темой (Android). Улучшения 🙌 TfgNavigationBar Переработана реализация компонента для iOS. Реализовано выпадающее меню для схлопнутых кнопок ActionButtons, которые не помещаются на панели. Теперь если у кнопки нету иконки, то отображается ее текст. TfgVirtualKeyboard Добавлено новое событие TfgForm.OnVirtualKeyboardBeginFrameChanging, вызываемое в начале анимации изменения области отображения виртуальной клавиатуры. В параметрах события передаются параметры анимации (длительность анимации, тип интерполяции), которые вы можете использовать для анимированной подстройки вашего UI под виртуальную клавиатуру. Событие дублируется широковещательной рассылкой сообщения FGX.VirtualKeyboard.TfgOnVirtualKeyboardBeginFrameChangingMessage, которое вы можете поймать в любом месте вашего приложения. Для Android новое событие пока вызывается сразу же перед OnVirtualKeyboardFrameChanged. FGX-113 Изменение фазы обработчика OnFormVirtualKeyboardFrameChanged (iOS). Прочее Добавлен новый демонстрационный проект: "Форма" -> "Безопасные отступы". Исправление ошибок 🐛 FGX-81 Некорректная работа нескольких TfgNavigationBar.ActionButtons (iOS). FGX-85 Нет сплеша (iOS). FGX-96 Не изменяется высота TfgItemWrapper в TfgCollectionView (iOS). FGX-106 Некорректно работает TfgVerticalScrollBox.ScrollBottom (iOS). FGX-108 Неверные размеры формы в событии Form.OnCreate (iOS). FGX-109 Ошибка в выполнении PositionAnimation (Android). FGX-115 Тусклое изображения на устройстве с темной темой (Android). FGX-116 TfgSVGPath не понимает кодировку картинок. Иногда могло вызываться событие TfgForm.OnVirtualKeyboardFrameChanged до полной загрузки/создания формы (iOS). Иногда тема могла применяться не верно для компонентов динамически добавленных в TfgPopup. В событии TfgForm.OnSafeAreaChanged передавалось не корректное значение нижнего отступа (Android). Удаление формы с TfgDrawerLayout или TfgBottomSheetLayout приводило к падению приложения (iOS). Событие TfgMap.OnMapReady вызывалось до TfgForm.OnCreate (iOS). Удаление формы с выделенным маркером в TfgMap приводило к падению (iOS). При касании маркера текущего положения пользователя в TfgMap приводило к падению (iOS). При создании маркера через использование TfgMapMarkerOptions точка привязки изображения маркера Anchor не применялась (Android). Так же изменена точка привязки изображения маркера с центра (0.5, 0.5) на нижнюю центральную точку (0.5, 1.0) по умолчанию. Добавлено применение дефолтных отступов кнопки для (iOS).
  9. На скриншоте справа нету логотипа. О каких цветах вы пишите?
  10. Download: The distributive is available by request only. Release date: 17 July 2021 Bug Fixes 🐛 If you create several forms on application startup, than last was marked as main form. The TfgHorizontalScrollbox.HorzScrollBar.Visible property didn't work (iOS).
  11. Скачать: Релиз доступен только по запросу. Дата релиза: 18 июля 2021 Исправление ошибок 🐛 Если при старте приложения создается несколько форм, то последняя созданная считалась главной. Свойство TfgHorizontalScrollbox.HorzScrollBar.Visible не работало (iOS).
  12. Добрый вечер, Проверил на Nokia 5.3. Не вижу проблем с цветами. У вас скорее всего включено изменение оттенка экрана в телефоне, что может менять оттенок картинки в целом на экране. Проверьте.
  13. Выложил хотфикс. Дайте знать, все ли ок теперь у вас?
  14. Скачать: Релиз доступен только по запросу. Дата релиза: 15 июля 2021 Исправление ошибок 🐛 FGX-101 TfgCameraFlashMode.On не работает (Android). FGX-102 Неверно отображается TfgLabel при TextType=HTML (iOS). FGX-103 Некорректный цвет фона по умолчанию у TfgPageControl (iOS).
  15. Download: The distributive is available by request only. Release date: 15 July 2021 Bug Fixes 🐛 FGX-101 TfgCameraFlashMode.On doesn't work (Android). FGX-102 Incorrect rendering font size of TfgLabel.Text when TextType = HTML (iOS). FGX-103 Incorrect TfgPageControl background color (iOS).
  16. Если подписка закончилась и не была продлена, то нужно приобретать новую. Если у человека есть какие-то трудности или он случайно пропустил продление, то мы идем на встречу и пересоздаем счет на продление. Так же негласно для оплаты счета продления дается еще около 7 дополнительных дней на возможность оплаты, после окончания срока действия подписки.
  17. Добрый день, Прикрепите, пожалуйста, демо проект, на котором видно описанное поведение. Так же укажите версию IDE и платформу (Android/iOS), на которой вы видите данное поведение. Спасибо
  18. Сегодня будет хотфикс, туда войдет это исправление.
×
×
  • Create New...