Skip to content
View in the app

A better way to browse. Learn more.

FGX Native

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Yaroslav Brovin

Administrators
  • Joined

  • Last visited

Everything posted by Yaroslav Brovin

  1. Выслал вам в личных сообщения исправление.
  2. Любопытно. Вот мое видео на Андроид 16 с двумя разными вариантами системной нижней панелью: жесты и системные кнопки: В обоих случайх работает, как ожидается. XRecorder_20261008_01.mp4XRecorder_20261008_02.mp4А какое значение прямоугольника клавиатуры возвращается в событии: TfgForm.OnVirtualKeyboardFrameChanged?
  3. Проверил, ошибку не смог воспроизвести. Есть демо-проект?
  4. Добрый день, проверю, отпишусь.
  5. Hello, You should check: Paths in IDE Tools -> Options... -> Language -> Delphi -> Library -> iOS Device 64-bit -> Library path. It has to contains paths to FGX Native dcu binary files for iOS SImulator target. If you have specified paths in (1). So you should check, that you selected iOS target files in installer (when you install FGX Native). Thank you
  6. The new release compatible with 13.2 was just released: https://forum.fgx-native.com/topic/4553-12010-english/
  7. Download: RAD Studio 12.*-13.0 setup_1.20.1.0_release.eng.zip Release date: 22 September 2026 Improvements 🙌RAD Studio 13.2Added support for RAD Studio 13.2. When installing the library, you have to select the designer version compatible with 13.2 TfgControl.SizeNow you can get control size with margins. New properties were added for TfgControl.Size: /// <summary>Control's width with left and right margins.</summary> property WidthWithMargins: Single read GetWidthWithMargins; /// <summary>Control's height with top and bottom margins.</summary> property HeightWithMargins: Single read GetHeightWithMargins; /// <summary>Control size with margins.</summary> property SizeWithMargins: TSizeF read GetSizeWithMargins;Bug Fixes 🐛An attempt to display a form from the TfgForm.OnShow event did not end with success. An application with Firebase could crash in a 32-bit configuration. This is a bug of the latest version 25 of Firebase. Until the problem is fixed, we rolled back: Firebase Common 22.0.1 -> 21.0.0 and Firebase Messaging 25.1.1 -> 24.1.2 The font style was not applied to TfgLabel in TfgTextType.HTML mode (Android). The background set via `TfgLabel.BackgroundName` might not be displayed in the form designer.
  8. Скачать: RAD Studio 12.* - 13.0 setup_1.20.1.0_release.rus.zip Дата релиза: 22 сентября 2026 Внимание 🚨Если при первой сборки приложения вы сталкиваетесь с такой ошибкой: Unable to download toolchain matching the requirements ({languageVersion=21, vendor=JetBrains, implementation=vendor-specific, nativeImageCapable=false}) from 'https://api.foojay.io/disco/v3.0/ids/ed4e3bf2f5e7c5d9aabc4cbd8acd555e/redirect', due to: Could not HEAD 'https://api.foojay.io/disco/v3.0/ids/ed4e3bf2f5e7c5d9aabc4cbd8acd555e/redirect'.То скачать требуемый файл можно двумя способами: Используя VPN. Повторно выполните сборку приложения после включения VPN Если у вас нет VPN, скачайте требуемый файл по этой [ссылке](https://data.fgx-native.com/installer/jbrsdk_jcef-21.0.11-windows-x64-b1163.116.tar.gz) и скопируйте (не распаковывать) файл в каталог <Коревая папка текущего пользователя>\.gradle\jdks. После чего выполните сборку приложения. Улучшения 🙌RAD Studio 13.2Добавлена поддержка RAD Studio 13.2. При установке библиотеки необходимо выбрать версию дизайнера совместимую с 13.2 TfgControl.SizeТеперь можно получить размер компонента с учетом внешних оступов. Добавлены новые свойства для TfgControl.Size: /// <summary>Ширина компонента, включая внешний отступы слева и справа.</summary> property WidthWithMargins: Single read GetWidthWithMargins; /// <summary>Высота компонента, включая внешний отступы сверху и снизу.</summary> property HeightWithMargins: Single read GetHeightWithMargins; /// <summary>Размер компонента, включая внешние отступы.</summary> property SizeWithMargins: TSizeF read GetSizeWithMargins;Исправление ошибок 🐛Попытка отобразить форму из событие TfgForm.OnShow заканчивалась не успехом. Приложение с Firebase могло падать в 32-битной конфигурации. Это ошибка последней 25 версии Firebase. Пока проблему не устранили, откатили: Firebase Common 22.0.1 -> 21.0.0 и Firebase Messaging 25.1.1 -> 24.1.2 Для TfgLabel не применялся стиль шрифт в режиме TfgTextType.HTML (Android). Фон заданный через TfgLabel.BackgroundName мог не отображаться в дизайнере форм.
  9. Метод Close закрывает форму с тем же способом, который был использован при ее открытии в модальном или обычно режиме. Если форма была показана с анимацией, то Close закроет ее с соответствующей анимацией. Если же форма была показана без анимации, то закроет так же без анимации. В текущем релизе - нет. В следующем, если вы планируете использовать свою анимацию, то будет режим Custom, которые через события делегирует вам анимацию формы вручную.
  10. Добрый вечер, Скорее всего не нужно удалять содержимое папки. При первой попытке загрузить данный файл сдк, гредл дополнительно складывает рядом служебные файлы. Я полагаю, что он их использует, чтобы дозагрузить. Поэтому попробуйте собрать проект еще раз, а после сообщения об ошибке подложить уже этот архив Спасибо.
  11. Добрый вечер, Код активации должен прийти в личных сообщения на форуме. Спасибо.
  12. Hello, We haven't tested build for 13.2. But based on your usefull feedback, looks liek 13.2 is not backward compatible with 13.1 At least Designer. We will prepare special build of the form designer for 13.2 and will make fresh release in the nearest 1-2 days. Sorry for inconvenience. Thank you
  13. В следующем релизе список будет расширен. Потенциальные варианты представлены в декларации типа стилей анимацией: /// <summary>Стиль анимации отображения обычной формы (не модальной).</summary> TfgFormPresentationStyle = (Default, None{, FullScreen, PageSheet, FormSheet, Custom}); /// <summary>Стиль анимации отображения модальной формы.</summary> TfgModalFormPresentationStyle = (Default, None{, FullScreen, PageSheet, FormSheet, Custom});Так же будет добавлен режим Custom, предназначенный для ручного применения своего типа анимации. Соответственно ответ: Вызвать Close Проставить либо DefaultCloseAction = Free (можно прямо у формы в дизайнере), либо значение Free передать в параметре AAction через событие OnClose.
  14. Сейчас идет параллельно работа над добавлением жеста Назад, чтобы форму можно было смахивать жестом. Вначале это будет добавлено для iOS, позже для Android 16+. Сейчас, условно, даже если вы захотите перейти к нативному поведению этой кнопки, это потребует программирование переходов между формами и тд, со всем эффектами. Так же, сужу по опыту выпуска релизов Гугла, они вначале вводят опцию для дополнительного времени для миграции ваших проектов на новое АПИ, а потом в следующей версии просто эту опцию уже отключают. Так что в любом случае нужно будет решать эту проблему, а не просто ее возвращать за счет опции.
  15. Я написал, что нужно скопировать, а не разархивировать.
  16. Скиньте, пожалуйста, скриншот, на котором виден текущий путь к папке .Gradle\jdks и что в нем лежит нужный архив.
  17. Ммм, Зачем отключать?
  18. Скопировать его в каталог: <Коревая папка текущего пользователя>\.gradle\jdks
  19. Скачать можно вручную по этой ссылке: https://data.fgx-native.com/installer/jbrsdk_jcef-21.0.11-windows-x64-b1163.116.tar.gz
  20. В течении часа скачаю вручную нужный пакет и выложу, чтобы его можно было скачать. Если есть VPN, то его так же можно скачать через него. Да, примеры анимирования форм. Программным способом, не через манифест.
  21. Download: RAD Studio 12.*-13.0 setup_1.20.0.0_release.eng.zip Release date: 03 June 2026 Warning 🚨Upon the first build of the FGX Native application for Android, the Gradle distribution 9.6.1 will be downloaded and installed with all the auxiliary plugins and libraries needed to build applications. This requires Internet access and time. Subsequent builds will run quickly. The attribute android:extractNativeLibs has been removed from the Android application manifest template. It is now automatically affixed by the assembly system automatically. If you use the animation of displaying or hiding shapes via TfgAnimationHelper, then you need to remove this code. The form now uses animation automatically. To animate the display of the modal window, you need to use the new TfgForm.ShowModal method. New ✨FormsThis release has improved the mechanisms for animating, displaying, hiding, and managing the lifetime of forms. AnimationsNow all forms use animation for their display and hiding by default. As a result, you no longer need to resort to using the auxiliary animation class TfgAnimationHelper. Using the example of opening a form. Old: { Regular form } TfgAnimationHelper.ShowForm(Form); TfgAnimationHelper.HideForm(Self, [TfgAnimationOption.ReleaseControlOnFinish]); { Modal form } TfgAnimationHelper.ShowModalForm(Form); TfgAnimationHelper.HideModalForm(Self, [TfgAnimationOption.ReleaseControlOnFinish]);New: { Regular form } Form.Show; Form.Close; { Modal form } Form.ShowModal; Form.Close;The old TfgCustomForm.Show method is supplemented with an optional APresentationStyle parameter, which allows you to select the type of animation for displaying the form. Currently, there are only two options available: TfgFormPresentationStyle.Default - with default animation (as it is accepted on the current platform). TfgFormPresentationStyle.None - Do not apply animation and display the form immediately. Therefore, if you do not want to apply animation, then you need to pass the optional parameter TfgFormPresentationStyle.None to the Show method. In addition to this method, a method ShowModal has been added for the modal display of the form. When hiding/closing a form, the Hide and Close methods use the reverse animation used when opening it. /// <summary> /// Display the form on the screen by applying the passed style <c>APresentationStyle</c> to the display animation. /// </summary> procedure Show(const APresentationStyle: TfgFormPresentationStyle = TfgFormPresentationStyle.Default); /// <summary> /// Display the form modally on the screen by applying the passed style <c>APresentationStyle</c> to the display animation. /// </summary> procedure ShowModal(const APresentationStyle: TfgModalFormPresentationStyle = TfgModalFormPresentationStyle.Default); /// <summary>Hide the form from the screen.</summary> /// <remarks>When hiding, the animation is reversed to the one that was used when displaying the form.</remarks> procedure Hide; overload; /// <summary>Hide the shape from the screen without animation.</summary> procedure HideWithoutAnimation; /// <summary>Hide the form from the screen with the possibility of its self-destruction of the instance.</summary> /// <remarks>The decision to act on the form can be influenced using the <c>DefaultCloseAction</c> property and/or the <c>onClose</c> event.</remarks> procedure Close; /// <summary>Was the form displayed on the screen?</summary> /// <remarks> /// Does not take into account its optical visibility, taking into account possible overlap with other forms, but captures the fact that it /// is located somewhere on the screen and its representation is embedded in the scene. /// </remarks> function IsShown: Boolean;Management and ClosingDespite the fact that the form closing mechanism has been introduced for a long time, it is worth mentioning separately in light of the addition of animation on how to correctly manage the lifetime of the form. The form must be closed and hidden using the Close method. In this case, the form asks the developer what to do with the form through the AAction parameter of the OnClose event. The following options are available: TfgFormCloseAction.None - The request to close the form is ignored. For example, if a user tries to close a form to save a change, and the filled-in data is incorrect, you can cancel the closing and point out the problem to the user. TfgFormCloseAction.Hide - The form is hidden, but the form instance is not deleted and it can be reused. TfgFormCloseAction.Free - The form is hidden and the form instance is deleted after it is completely hidden. If you know in advance that the form needs to be destroyed when closing, you can specify this via the TfgForm.DefaultCloseAction property. In this case, this will be the default value that will be passed to the OnClose event, if it is defined. This mechanism has been around for a long time, however, due to the fact that previously closing the form with animation was performed through the TfgAnimationHelper helper, it was not possible to use it since deleting the form only needs to be done after the animation is over. Now that animation is part of the form, this mechanism is fully synchronized with it. Modal formsIn this release, asynchronous modality mode has been added for forms. To display the form in modal mode, you need to use new methods: procedure ShowModal(const APresentationStyle: TfgModalFormPresentationStyle = TfgModalFormPresentationStyle.Default); overload; procedure ShowModal(const ACloseCallback: TfgCloseModalCallback; const APresentationStyle: TfgModalFormPresentationStyle = TfgModalFormPresentationStyle.Default); overload;The form will be displayed on the screen with animation (by default), and the result of displaying the form TModalResult will be passed to the callback function ACloseCallback. Usage example: MyForm.ShowModal( procedure (const AModalResult: TModalResult) begin case AModalResult of mrCancel: TfgToastFactory.Show('Cancel was pressed'); mrOk: TfgToastFactory.Show('OK was pressed'); end; end);The return value of the modal result is set via a new form property TfgForm.ModalResult. In addition, the TfgButton button now has a public ModalResult property. When the button is clicked, this value is automatically set in TfgForm.ModalResult. vkHardwareBack key on Android 16+Starting with applications developed for Android 16+, Google disabled operation of the vkHarwareBack button. This means that in your applications, the processing of this button did not work. We simulated the challenge of pressing this button, as it was before. GradleWe updated the Gradle build system for Android applications from version 8.13 up to 9.6.1. Attention: During the first build of the FGX Native application for Android, the Gradle 9.6.1 distribution will be downloaded and installed with all the auxiliary plugins nd libraries needed to build applications. This requires Internet access and time. Subsequent builds will run quickly. Upgrading used Android librariesIn this release, the following used Android libraries have been updated to the latest versions and their FGX Native services have been used: Google PDF 1.0.0-10 -> 1.0.0-19 AndroidX 1.9.0 -> 1.15.0 Lottie 5.2.0 -> 6.7.1 Visio 18.1.0 -> 18.3.1 Google Maps 18.1.0 -> 20.0.0 Firebase Common 20.1.2 -> 22.0.1 Firebase Messaging 23.0.8 -> 25.1.1 Firebase Analytics 21.2.0 -> 23.2.0 Admob 21.2.0 -> 25.4.0 Facebook Login 16.2.0 -> 18.3.0 Yandex Analytics 7.5.0 -> 8.5.1 Yandex Mobile Ads 6.4.0 -> 8.3.0 Android Billing 7.0.0 -> 9.1.0 In addition, all header files Android.Api.* have been updated to the latest library versions. Improvements 🙌TfgCollectionViewIn 1.19.6.0 the approach to calculating the size of list items has been changed. As a result, the OnBindItem event can be called for the same element multiple times. In one case, to calculate the size of the element, in the other to display it. In iOS, the first time it is displayed, the size of all elements is requested. And if the list assumes the display of images loaded asynchronously, this leads to the problem of loading all images at once en masse. As a result, the RAM allocated for the application may run out, and the entire application may slow down. Now you can determinate the data binding assignment (call OnBindItem) to the elements using the new TfgItemWrapper.Purpose property and skip loading or linking images to the components of the element, thereby speeding up the calculation of the size of the elements. /// <summary> /// <para> /// Assignment of an item in the list /// </para> /// <para> /// <list> /// <item><b>Measure</b> - The item is used to calculate its size.</item> /// <item><b>Display</b> - The item is used to display on the screen.</item> /// </list> /// </para> /// </summary> TfgItemWrapperPurpose = (Measure, Display); TfgItemWrapperPurposes = set of TfgItemWrapperPurpose;Tip: If you are using lists with dynamic height elements and displaying images, then use TfgItemWrapperPurpose.Measure to skip loading and displaying these images in order to speed up the list. Java2DelphiImproved the auxiliary utility for generating header files for Java/Kotlin libraries: If two Java classes with the same names were found in different packages during import, they could be incorrectly used as a parent class. Previously, the generator did not take into account the case of class names, as a result of which the classes package.MyClass and package.MyClass could be handled incorrectly. Fixed the generation of setters for static java class fields. The name of the Java method inline is a keyword and is processed separately. TfgComboBoxAdded the ability to specify the width of the drop-down window for the TfgComboBox. The property TfgComboBox.Appearance.Popup.Width only makes sense under Android. FGX-511 How can I calculate the width of the drop-down list? Bug Fixes 🐛TfgLabel didn't apply custom user's font and horizontal text alignment. FGX-245 TfgPickerPhotoFactory doesn't let to select a photo from the gallery (Android). FGX-463 The TintColorName property does not work correctly during dynamic creation TfgSwitch. (Android). FGX-512 The Yandex SDK has not been updated for a long time (Android). FGX-513 Severe performance drawdown on iOS when using TfgCollectionViewStyle.VariableSize (iOS). FGX-514 Invalid AVKFrame Height on Android 15+ (Android).

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.