Jump to content

Yaroslav Brovin

Administrators
  • Posts

    2,565
  • Joined

  • Last visited

  • Days Won

    645

Everything posted by Yaroslav Brovin

  1. Download: The distributive is available by request only. Release date: 9 June 2023 Bug Fixes 🐛 FGX-274 Incorrect rendering TfgImage on HiDPI screens in IDE form designer. IDE includes not existing FGX.Advertising.Types in case of usage any advertising components. The compilation of Advertising demos was fixed. Application could be crashed in case of usage Google Authentication (Android).
  2. Скачать: Релиз доступен только по запросу. Дата релиза: 9 июня 2023 Улучшения 🙌 Исправление ошибок 🐛 FGX-274 Некорректное отображение изображений в IDE. При использовании компонентов рекламы ошибочно подключается не существующий модуль FGX.Advertising.Types. Исправлена компиляция примеров с рекламой. При использовании Google авторизации, приложение могло падать (Android).
  3. We support 10.4 and 11.+ at this moment. So if you have a plan to use FGX Native, you can start from 11.0 Delphi Community Edition for example.
  4. Hello @mhammady, Yes, you can use full version in VM too. This limitation is used only in Trial version. Thank you
  5. Hello @MoreWood, You can look at the source code of any graphic controls: TfgRectangle, TfgSVGPath, TfgRegionPicker and etc. TfgRegionPicker is a new component, which is based on TfgGraphicControl class and provide crossplatform implementation. Or you can use regular TfgPaintBox. TfgCanvas provides good quality and antialiasing.
  6. Есть что в стек трейсе, в логе на устройстве? Запускаете демо-пример или свой проект делаете? Идентификатор проекта нигде не нужно указывать для Yandex Mobile Ads, на сколько я знаю. Только AdUnitID у баннера. SmartBanner не поддерживается официально в Yandex Mobile Ads. Правку внес.
  7. Hello @Angel, The first as I mentioned before this components depends on FMX, so they will not work in FGX Native. Now it is clearly visible by opening almost any module of this library. FMX is used everywhere.* modules. The second we are providing trial for testing purposes. One of the goal is a testing compatibility with 3-d party components. You can check any components in FGX Native project. Thank you.
  8. Значит пальцем. Обычно есть два способа: Программным. Когда программист при вызове метода выполняет какое-то взаимодействие пользователя (например, прокрутка) Интерактивное. Пользователь пальцем взаимодействуя с компонентом заставляет его крутиться. Можно использовать два разных провайдера рекламы и переподключать их на лету. Однако, нужно иметь в виду, что AdMob требует указания ключа на уровне андроид манифеста. Поэтому AdMob всегда будет инициализироваться. Это формулировка говорит о том, что можно использовать один провайдер для всех компонентов баннеров и полностраничной рекламы.
  9. Download: The distributive is available by request only. Release date: 1 June 2023 Warning 🚨 1. The architecture of advertising components were refactored, so now it supports different adv providers (not only AdMob). In case if you are using components TfgBannerAd or TfgInterstitialAd, you have to do follow steps: Put on form new component TfgGoogleAdMobProvider, where you use TfgBannerAd or TfgInterstitialAd componsnts. The one instance TfgGoogleAdMobProvider can be used in all components. Link TfgBannerAd and TfgInterstitialAd with provider via Provider property. If you don't do this steps, than advertising will not be displayed in runtime. 2. There was a renaming of two types used for TfgPickerPhoto: TfgPickerPhotoSource replaced by TfgPickerMediaSource TfgPhotoFiles replaced by TfgMediaFiles Please update the declarations if you use these types directly in your projects. New ✨ TfgRegionPicker The new component was developed for interactive selecting rectangle region. Details. TfgBannerAd and TfgInterstitialAd The ad placement components have been refactored, as a result of which different advertising providers (Google AdMob, Yandex Mobile Ads) are now supported. Previously, the advertising platform Google AdMob was integrated directly into the components TfgBannerAd and TfgInterstitialAd. Now we have separated the advertising provider into separate components TfgGoogleAdMobProvider called the advertising provider. And the components TfgBannerAd and TfgInterstitialAd simply use information from the provider. Therefore, now to use advertising, it is necessary to use the provider of the required advertising platform and link it with the components TfgBannerAd and TfgInterstitialAd. You can use one provider per application. The provider has a one-to-many connection. Yandex Mobile Ads We added support for advertising in the "banner" and "full-page advertising" format from the Yandex Mobile Ads advertising platform. A new provider TfgYandexMobileAdsProvider has been developed. Currently, the advertising components are implemented only for Android. Added a new demo example: "Components" -> "TfgBannerAd" -> "Example of displaying an advertising banner (Yandex Mobile Ads)" Setup on Android In order to use the mobile version of Yandex, you need to add "com.yandex.android:mobileads:5.7.0" in the application settings "Project" -> "FGX Native Android Libraries". Crop, preview and other helpers for TfgBitmap The new unit FGX.Bitmap.Helpers was added. It expands features of TfgBitmap and adds additional transformation methods: Crop and Thumbnail. TfgBitmapHelper = class helper for TfgBitmap public {$REGION 'Creating new bitmaps'} /// Create thumbnail image, which can be used for preview. The image is fit into specified size with saving aspect ration. /// If the specified zize is zero, the method raises exception. function CreateThumbnail(const ASize: TSize): TfgBitmap; /// Creates new cropped image from specified region. ARegion - physical coordinates of region. function CreateCroppedBitmap(const ARegion: TRect): TfgBitmap; /// Creates new bitmap and apply specified tint color. function CreateTinted(const ATintColor: TAlphaColor): TfgBitmap; /// Creates new bitmap and rotate it on specified angle. function CreateRotated(const AAngle: TfgRotation): TfgBitmap; {$ENDREGION} {$REGION 'Transformation'} /// Crops bitmap by specified region. ARegion - physical coordinates of region. /// If region coordinates ARegion are bigger than bitmap bounds, then region size is cropped by bitmap bounds. /// If the specified zize is zero, then result bitmap became empty. procedure Crop(const ARegion: TRect); {$ENDREGION} end; To use the new methods, you need to add the FGX.Bitmap.Helpers to the uses section and call new methods on the instance of TfgBitmap. Details. Exif The new service for extracting Exif meta-information. To request Exif information, you need to use the class FGX.Exif.TfgExif. A typical usage example looks like this: uses FGX.Exif; var Properties: TfgExifProperties; if TfgExif.TryLoad(AFileName, Properties) then begin // Properties.Rotation; end; Details. Rotate gesture The supporting of Rotation gesture was added. You should do follow for usage new gesture recognizer: Include Rotate: GestureKinds = GestureKinds + TGestureKind.Rotate Add TfgControl.OnRotate event handler. Argument of TfgControl.OnRotate includes usefull values about rotation: /// <summary>Initial coordinates of first finger (<c>Phase = TfgGesturePhase.Begin</c>).</summary> /// <remarks>In Local coordinate system of control.</remarks> InitialPoint1: TPointF; /// <summary>Initial coordinates of second finger (<c>Phase = TfgGesturePhase.Begin</c>).</summary> /// <remarks>In Local coordinate system of control.</remarks> InitialPoint2: TPointF; /// <summary>Current coordinates of first finger.</summary> /// <remarks>In Local coordinate system of control.</remarks> Point1: TPointF; /// <summary>Current coordinates of second finger.</summary> /// <remarks>In Local coordinate system of control.</remarks> Point2: TPointF; /// <summary>Current delta angle related to initial in counterclockwise (in degrees).</summary> DeltaAngle: Single; /// <summary>Curren gesture phase.</summary> Phase: TfgGesturePhase; TfgPickerVideo Added video file picker. You can select one or more video files from the gallery (TfgPickerVideoFactory.PickVideoFromLibrary, TfgPickerVideoFactory.PickVideosFromLibrary), as well as record your own video using the system interface (TfgPickerVideoFactory.PickVideoFromCamera). When recording a video, it is possible to specify the maximum video duration in seconds (TfgPickerVideo.DurationLimit). Warning: This option is not guaranteed to work on Android, as directly depends on the camera vendor. TfgCalendar Added implementation for iOS. Improvements 🙌 TfgDrawerLayout The new property SwipeEnabled was added. It's responsible for disabling sliding drawer by interactive way. Use it instead of Enabled. TfgCollectionView The new property ScrollEnabled was added. It's responsible for list scrolling by interactive way. SVG Improved support for SVG files: Added recognition of gradient point parameters via style (Attribute Style). Added predictive reading of gradients and styles after using them directly. Added support for using ',' as a separator in the assignment of transformation matrices. Bug Fixes 🐛 Excluding gestures from GestureKinds didn't work (iOS). The usage of TfgLabel.FocusControl could lead to application crash in some cases. FGX-270 TfgLabel.OnTap didn't work (Android). FGX-271 In case of embedding form, TfgCollectionView could automatically turn on PullToRefresh (Android). The display of TfgPage was fixed on HiDPI screens in IDE. In case of usage TfgNavigationBar.Style = Translucent control disables shadow.
  10. Скачать: Релиз доступен только по запросу. Дата релиза: 1 июня 2023 Внимание 🚨 1. Выполнен рефакторинг компонентов размещения рекламы, в результате чего теперь поддерживаются разные поставщики рекламы (Помимо Google AdMob). Если вы используете в своих проектах компоненты TfgBannerAd или TfgInterstitialAd, то вам необходимо выполнить следующие действия: Разместить на форме, где вы используете TfgBannerAd или TfgInterstitialAd, новый компонент TfgGoogleAdMobProvider. Достаточно одного экземпляра на все. Связать TfgBannerAd и TfgInterstitialAd с компонентом при помощи свойства Provider. Если не выполнить эти шаги, то в рантайме реклама не будет отображаться. 2. Произошло переименование двух типов, используемых для TfgPickerPhoto: fgPickerPhotoSource заменен на TfgPickerMediaSource fgPhotoFiles заменен на TfgMediaFiles Пожалуйста, обновите декларации, если вы используете в своих проектах данные типы напрямую. Новое ✨ TfgRegionPicker Разработан новый компонент для осуществления интерактивного выбора области. Детали. Реклама TfgBannerAd и TfgInterstitialAd Выполнен рефакторинг компонентов размещения рекламы, в результате чего теперь поддерживаются разные поставщики рекламы (Google AdMob, Yandex Mobile Ads). Раньше рекламная площадка Google AdMob была интегрирована прямо в компоненты TfgBannerAd и TfgInterstitialAd. Сейчас же мы выделили поставщика рекламы в отдельные компоненты TfgGoogleAdMobProvider называемый провайдером рекламы. А компоненты TfgBannerAd и TfgInterstitialAd просто используют информацию от провайдера. Поэтому теперь для использования рекламы необходимо использовать провайдер требуемой рекламной площадки и связать его с компонентами TfgBannerAd и TfgInterstitialAd. Можно использовать один провайдер в приложении. У провайдера связь один ко многим. Реклама Yandex Mobile Ads Добавлена поддержка рекламы в формате "баннер" и "полностраничная реклама" от рекламной площадки Yandex Mobile Ads. Разработан новый провайдер TfgYandexMobileAdsProvider. На текущий момент компоненты рекламы реализованы только для Android. Добавлен новый демо-пример: "Компоненты" -> "TfgBannerAd" -> "Пример отображения рекламного баннера (Yandex Mobile Ads)" Настройка для Android Для того, чтобы использовать Yandex Mobile Ads необходимо добавить зависимость "com.yandex.android:mobileads:5.7.0" в настройках библиотек "Project" -> "FGX Native Android Libraries". Обрезка, превью и другие хелперы для TfgBitmap Добавлен новый модуль FGX.Bitmap.Helpers, расширяющий возможности TfgBitmap и добавляющий дополнительные методы по трансформации и редактированию битмапа: вырезание области (Crop), создание превью (Thumbnail). TfgBitmapHelper = class helper for TfgBitmap public {$REGION 'Creating new bitmaps'} /// <summary> /// Создает миниатюрное изображение, которое может использовать в виде превью. Изображение вписывается в /// указанный размер с сохранение пропорций и центрируется. /// </summary> /// <remarks>Если передается нулевой размер, то метод поднимает исключение.</remarks> function CreateThumbnail(const ASize: TSize): TfgBitmap; /// <summary> /// Создает новое изображение сформированное из указанной области. <c>ARegion</c> - физические координаты области. /// </summary> function CreateCropped(const ARegion: TRect): TfgBitmap; /// <summary>Создает новое изображение и применяет указанный оттенок.</summary> function CreateTinted(const ATintColor: TAlphaColor): TfgBitmap; /// <summary>Создает новое изображение и поворачивает его на указанный угол.</summary> function CreateRotated(const AAngle: TfgRotation): TfgBitmap; {$ENDREGION} {$REGION 'Transformation'} /// <summary>Выполняет вырезание указанной области изображения. <c>ARegion</c> - физические координаты области.</summary> /// <remarks> /// <para> /// Если координаты области <c>ARegion</c> выходят за пределы физического размера изоюбражения, то они отсекаются /// по размеру изображения. /// </para> /// <para> /// Если результирующая область имеет нулевой размер, то текущий битмап принимает нулевой размер. /// </para> /// </remarks> procedure Crop(const ARegion: TRect); /// <summary>Симметричное отражение изображения по горизонтальной оси.</summary> procedure FlipHorizontal; /// <summary>Симметричное отражение изображения по вертикальной оси.</summary> procedure FlipVertical; {$ENDREGION} end; Чтобы воспользоваться новыми методами, необходимо подключить в секцию uses модуль FGX.Bitmap.Helpers и вызывать новые методы на экземпляре TfgBitmap. Детали. Exif Добавлен новый сервис для получения мета информации Exif. Чтобы запросить Exif информацию нужно воспользоваться классом FGX.Exif.TfgExif. Типовой пример использования выглядит так: uses FGX.Exif; var Properties: TfgExifProperties; if TfgExif.TryLoad(AFileName, Properties) then begin // Properties.Rotation; end; Детали. Жест поворота Добавлена поддержка нового жеста поворота. Для того, чтобы воспользоваться жестом нужно: Включить его через свойство GestureKinds = GestureKinds + TGestureKind.Rotate Написать обработчик TfgControl.OnRotate. В параметрах события TfgControl.OnRotate передается информация о текущем повороте: TfgRotateInfo = record /// <summary>Первоначальные координаты первого пальца (<c>Phase = TfgGesturePhase.Begin</c>).</summary> /// <remarks>Указывается в локальных координатах контрола.</remarks> InitialPoint1: TPointF; /// <summary>Первоначальные координаты второго пальца (<c>Phase = TfgGesturePhase.Begin</c>).</summary> /// <remarks>Указывается в локальных координатах контрола.</remarks> InitialPoint2: TPointF; /// <summary>Текущие координаты первого пальца.</summary> /// <remarks>Указывается в локальных координатах контрола.</remarks> Point1: TPointF; /// <summary>Текущие координаты второго пальца.</summary> /// <remarks>Указывается в локальных координатах контрола.</remarks> Point2: TPointF; /// <summary>Текущий угол поворота относительно начального (В градусах).</summary> DeltaAngle: Single; /// <summary>Текущая фаза жеста.</summary> Phase: TfgGesturePhase; function ToString: string; end; TfgPickerVideo Добавлен пикер видео файлов. Вы можете выбрать один или несколько видео файлов из галереи (TfgPickerVideoFactory.PickVideoFromLibrary, TfgPickerVideoFactory.PickVideosFromLibrary), а так же снять свое видео используя системный интерфейс (TfgPickerVideoFactory.PickVideoFromCamera). При съемке видео есть возможность указать максимальную длину видео в секундах (TfgPickerVideo.DurationLimit). Внимание: На Android работа данной опции не гарантируется, т.к. напрямую зависит от поставщика камеры. TfgCalendar Добавлена реализация для iOS. Улучшения 🙌 TfgDrawerLayout Добавлено новое свойство SwipeEnabled, которое отвечает за возможность выдвижения/задвигания панели интерактивным способом. Используйте это свойство вместо Enabled. TfgCollectionView Добавлено новое свойство ScrollEnabled, которое отвечает за возможность прокрутки списка интерактивным способом. SVG Улучшение поддержки SVG файлов: Добавлено распознавание параметров точек градиента через стиль (Атрибут Style). Добавлено предиктивное чтение градиентов и стилей после непосредственного использования таковых. Добавлена поддержка использования ',', как разделителя в задании матриц трансформации. Исправление ошибок 🐛 Не работало программное отключение жестов (iOS). Использование TfgLabel.FocusControl могло приводит к падению приложения в определенных случаях. FGX-270 Не срабатывает событие TfgLabel.OnTap (Android). FGX-271 При встраивании формы мог автоматически включаться PullToRefresh (Android). Исправлено отображение вкладки TfgPage в дизайнере на HiDPI экранах при использовании оттенка для Android стиля. При использовании TfgNavigationBar.Style = Translucen теперь отключается тень.
  11. Hello @Robson Rodrigues, Some 3-d party components spoils system Path variable value in IDE. It doesn't let to IDE loads all required dll and packages. So please, check it first: IDE Main Menu -> Tools -> Options -> IDE -> Enviroument Variables Look at the PATH variable in "User System Overrides". Please send me this value here. If this variable has value it should contains "$(PATH);"
  12. Спасибо 🙂 Сразу виден глаз опытного QA 😁
  13. Добрый день, уважаемые разработчики. Продолжаем обзор новых возможностей 1.16.0.0 и в этой статье поговорим об улучшениях связанных с изображениями. В этом релизе мы добавили вспомогательные методы для решения часто встречаемых задач: таких как кадрирование, превью, изменение размера, повороты и перекрашивание. Для того, чтобы воспользоваться методами необходимо подключить модуль "FGX.Bitmap.Helpers" в секцию uses. Кадрирование - Crop Данные методы позволяют вырезать из исходного битмапа указанную область. Предлагается два метода: CreateCropped - создает новый экземпляр битмапа, не изменяя исходный Crop - модифицирует исходный экземпляр битмапа. /// <summary> /// Создает новое изображение сформированное из указанной области. <c>ARegion</c> - физические координаты области. /// </summary> function CreateCropped(const ARegion: TRect): TfgBitmap; /// <summary>Выполняет вырезание указанной области изображения. <c>ARegion</c> - физические координаты области.</summary> /// <remarks> /// <para> /// Если координаты области <c>ARegion</c> выходят за пределы физического размера изоюбражения, то они отсекаются /// по размеру изображения. /// </para> /// <para> /// Если результирующая область имеет нулевой размер, то текущий битмап принимает нулевой размер. /// </para> /// </remarks> procedure Crop(const ARegion: TRect); Повороты - Rotate Методы поворота позволяют повернуть изображение на углы (90 - 180 - 270) градусов. Предлагается два метода: CreateRotated - создает новый экземпляр битмапа, не изменяя исходный Rotate - модифицирует исходный экземпляр битмапа и выполняет поворот. /// <summary>Созадет новое изоюражение и поворачивает его на указанный угол.</summary> function CreateRotated(const AAngle: TfgRotation): TfgBitmap; /// <summary>Поворачивает изображение на указанный угол.</summary> procedure Rotate(const AAngle: TfgRotation); Отражение - Flip Два метода по симметричному отражению исходного экземпляра битмапа относительно вертикальной и горизонтальной осей. /// <summary>Симметричное отражение изображения по горизонтальной оси.</summary> procedure FlipHorizontal; /// <summary>Симметричное отражение изображения по вертикальной оси.</summary> procedure FlipVertical; Создание превью - Thumbnail Очень часто требуется получить из исходного битмапа большого размера превью ограниченного размера. Для этого мы предлагаем метод: /// <summary> /// Создает миниатюрное изображение, которое может использовать в виде превью. Изображение вписывается в /// указанный размер с сохранение пропорций и центрируется. /// </summary> /// <remarks>Если передается нулевой размер, то метод поднимает исключение.</remarks> function CreateThumbnail(const ASize: TSize): TfgBitmap; Перекрашивание - Tint Методы по перекрашиванию исходного экземпляра изображения в указанный цвет. Предлагается два метода: CreateTinted - создает новый экземпляр битмапа, не изменяя исходный ApplyTintColor - модифицирует исходный экземпляр битмапа и выполняет поворот. /// <summary>Создает новое изображение и применяет указанный оттенок.</summary> function CreateTinted(const ATintColor: TAlphaColor): TfgBitmap; /// <summary>Задает оттенок изображения. Операция не отменяемая.</summary> procedure ApplyTintColor(const ATintColor: TAlphaColor); Мета информация EXIF Помимо вспомогательных методов по трансформации битмапов зачастую требуется выполнить нормализацию угла поворота изображения. Когда пользователь делает снимок с камеры, то камера сохраняет файл в ориентации фото сенсора, который не обязательно совпадает с текущей ориентаций экрана. Дополнительно, камера используя мета информацию EXIF помещает в нее ориентацию съемки фотографии. Поэтому при попытке загрузить такое изображение в FGX Native битмап будет отображаться в ориентации съемки с сенсора. Для того, чтобы выполнить коррекцию угла поворота для отображения мы предлагаем новое API для извлечения EXIF информации из файла. Типовой пример использования может выглядеть так: uses FGX.Exif; var Properties: TfgExifProperties; if TfgExif.TryLoad(AFileName, Properties) then begin // Properties.Rotation; // Properties.Rotation.ToRotation - возвращает TfgRotation, который можно передать в метод TfgBitmap.Rotate. end; На текущий момент мы извлекаем только ориентацию. Но если вам требуются получать дополнительную EXIF информацию, дайте знать, мы добавим. Уверены данные нововведения позволят вам сократить ваш код. Спасибо за внимание
  14. Добрый день, уважаемые разработчики. Скоро выйдет новое крупное обновление 1.16.0.0, которое содержит ряд новых компонентов, серию улучшений и исправление ошибок. Одним из новых компонентов станет интерактивный выбор прямоугольной области, который может использоваться для обрезания изображения. Компонент представляет собой слой, который можно наложить поверх редактируемого объекта. Например, TfgImage. Для удобства расположения, можно воспользоваться якорями FlexBox - свойство RelativePosition. При помощи точек выделения можно интерактивным путем расширить регион. А получить или указать его координаты можно при помощи свойства TfgRegionPicker.Region. При интерактивном изменении области вызывается событие OnChanged. При первом отображении компонента можно отцентрировать регион при помощи свойства RegionOptions.DefaultPlacement. Настройки внешнего вида Компонент предлагает набор настроек, позволяющие настроить отображение отдельных элементов компонента, таких как: Точки выделения (Appearance.Grip). Здесь можно поменять размер точек и параметры кистей заливки и контура. Регион (Appearance.Region). Здесь можно поменять параметры отрисовки пунктирной рамки области выделения. Затемнение вне региона (ContentShading). По умолчанию все, что вне области выделения затемняется. Это настраивается этим свойством. Можно указать базовый цвет затемнения и ее прозрачность. Кадрирование В релизе 1.16.0.0 добавлены новые метод, позволяющие легко выполнить базовые преобразования. К одному из таких методов относится кадрирование битмапа по области TfgBitmap.CreateCropped (Чтобы воспользоваться методом нужно подключить модуль FGX.Bitmap.Helpers). Ниже представлен пример кода, выполняющий кадрирование изображения на основании координат региона, полученных от TfgRegionPicker. Пример доступен в разделе "Компоненты" -> "TfgRegionPicker" -> "Обрезание фотографии": procedure TFormMain.btnCropTap(Sender: TObject); var Region: TRectF; AssetBitmap: TfgAssetBitmapSet; Bitmap: TfgBitmap; CroppedBitmap: TfgBitmap; CroppedRect: TRectF; Scale: Single; DestRect: TRectF; begin Region := rpCropRegion.Region.ToRectF; if TfgAssetsManager.Current.Find<TfgAssetBitmapSet>(R.Bitmap.PHOTO, AssetBitmap) and AssetBitmap.FindBitmap(Bitmap) then begin // Вычисляем область вывода битмапа в контроле. DestRect := TRectF.Create(FBitmap.Bounds).FitInto(pbOriginal.Bounds, Scale); // Корректируем положение региона. Region.Offset(-DestRect.TopLeft); // Масштабируем область согласно физическому размеру битмапа. CroppedRect.TopLeft := Region.TopLeft * Scale; CroppedRect.BottomRight := Region.BottomRight * Scale; // Кадрируем исходный битмап CroppedBitmap := Bitmap.CreateCropped(CroppedRect.Truncate); TfgAssetsManager.Current.AddBitmap('Cropped Image', CroppedBitmap); end; end; Результат работы представлен на видео ниже: TfgRegionPicker-demo.mp4 Спасибо за внимание.
  15. See demo sample: "Components" -> "TfgCollectionView" -> "Items aspect ratio"
  16. We have App Payments implementation in FGX Native: TfgInAppPurchase, TfgAndroidPay and TfgApplePay (not tested yet, but implemented). We have implementation for AdMob (banner and Interstitial) for Android. If you need working with AdMobStorage, you can use free FB4D components https://github.com/SchneiderInfosystems/FB4D/tree/master/Source It's compatible with FGX Native. This question requires more clarification on your part. If we are talking about automatic list size, then no.
  17. Hello @Angel, I'm not able to download any demo samples from JVESuite. However, I guess it's not compatible with FGX Native because: The site points on components for FMX Component set includes several visual controls, label for example. But visual components always linked to some visual framework. What components are you interesting in from this set? Thank you, Yaroslav
  18. Hello @Robson Rodrigues, Just select 11.2. 11.2 is compatible with 11.3 Thank you
  19. Hello, Since you have demo sample, please attach this project. Thank you
  20. If you are using Inkscape, use "Optimized SVG" format, when you save SVG file. It simplificates content and makes final SVG file faster for rendering and parsing.
  21. Hello @Александр Клопоцкий, You should also add to your project sources of the dependent library JOSE.
×
×
  • Create New...