Jump to content

Recommended Posts

  • Administrators


Release date:

16 May 2020


~ Loss of backward compatibility:

  - Assets: Renamed TfgBitmapInfo.BitmapSource -> Source.
  - Assets: Renamed TfgBitmapInfo.TfgBitmapSource -> TfgSource.
  - Assets: The public constructor is moved from TfgAsset to protected section. 
  - Assets: GetAssetsNames returns TArray<TfgAssetName>, not a TArray<string>
  - Assets: Now the method of theme name normalization is a part of record helper of TfgThemeName.

* Assets manager:

  - Dynamical saving operative memory:

    - Added a new method TfgAsset.ReleaseFromMemory. It is responsible for unloading from memory,
      heavy data associated with the resource. For example, if you no longer use an image resource,
      then this method will allow you to unload the bitmap from memory, thereby freeing up RAM for the system.
    - Now the Assets Manager can automatically unload resources from memory that are no longer used.
      This is the responsibility of setting TfgAssetsManager.AutoreleaseOptions.Enabled, which is disabled by default.
    - If you want to prevent a asset from being unloaded from memory, you can do this via the new OnShouldReleaseFromMemoryEvent event.
    - Now the asset takes into account the number of active clients - those who directly use the resource. 
      All components automatically work in the "Acquire-Release" resource paradigm via the new TfgAsset.Acquire and TfgAsset.Release methods.
    - For dynamically added graphics assets in the runtime provided for the discharge of such resources on disk. 
      This is the responsibility of the following settings: TfgAssetsManager.AutoreleaseOptions.DumpTarget.
    - Added new demo sample: "Assets" -> "Images" -> "Releasing image from memory"

  - Fixed memory leaks, which may have occurred when the BitmapSet resource was physically deleted.
  - Added more xml-documentations.
  - General improvements in internal implementation that are not visible to the eye.

* New project wizard:

  - Added page for selecting a template for the new project. Two templates are currently available. Further the list will be expanded..

* TfgPageControl:

  - Added a new method TfgPageControl.GoToPage for animated tab selection based on the index.
Link to post
Share on other sites
  • Similar Content

    • By Yaroslav Brovin
      Release date:
      4 December 2020
      New ✨
      Now you can automatically add new inherited form. Select Add New -> FGX Other... in context menu of project node in Projects panel. Full implementation of markers support in TfgMap for iOS. Full implementation of circles support in TfgMap for iOS. The new TfgMap.StandardLayerKinds property was added. It allows to control visibility of standard layers (Traffics and buildings). The new TfgMap.UserGestureKinds property was added. It allows to disable supportable map gestures.  The new TfgMap.OnInfoWindowTap event was added. It's invoked, when user tap on information window of marker. The new demo sample Android Api -> Immersive mode shows how to enable ImmersiveModeо in Android. Improvements 🙌
      Now you can take internal application version via Application.Info.VersionCode. The new Android header android.graphics.drawable.VectorDrawable was added for working with vector images. Bug Fixes 🐛
      If TfgButton has TfgButton.Appearance = Contained in IDE, than style was not applyed to button in runtime for iOS. TfgImage.Opacity doesn't work in IDE. If project uses PushNotification and other custom Android services, than the Android manifest has information only about PushNotification service. An error might occur when the Android service starts and stops repeatedly "Cannot allocate proxy. All FGX Proxy interfaces are busy.". TfgButton doesn't change backgroud color, if you are using color asset in BackgroundName.
    • By Yaroslav Brovin
      Дата релиза:
      3 декабря 2020
      Новое ✨
      Теперь можно автоматически добавлять наследуемые формы. Выберите Add New -> FGX Other... в контестном меню проекта на панели Projects. Полная реализация работы с маркерами в TfgMap под iOS. Полная реализация работы с кругами в TfgMap под iOS. Добавлено новое свойство TfgMap.StandardLayerKinds, позволяющее управлять отображением на карте стандартных слоев (загруженность дорог и строения). Добавлено новое свойство TfgMap.UserGestureKinds, позволяющее указать, какие жесты разрешено совершать пользователю. Добавлено новое событие TfgMap.OnInfoWindowTap, срабатывающее в момент нажатия на информационное окно маркера. Новый демонстрационный проект Android Api -> Иммерсивный режим о том, как включить иммерсивный режим в Android.  Улучшения 🙌
      Теперь можно получить внутреннюю версию приложения через Application.Info.VersionCode. Добавлен заголовочный класс android.graphics.drawable.VectorDrawable для работы с векторными изображениями. Исправление ошибок 🐛
      Если в дизайнере установить TfgButton.Appearance = Contained, то в рантайме под iOS стиль не применялся. TfgImage.Opacity не работает в дизайнере. Если в проекте одновременно используется PushNotification и другие Android сервисы, то в манифесте прописывался только PushNotification сервис. При серии запуска и остановки Android сервиса могла возникать ошибка "Cannot allocate proxy. All FGX Proxy interfaces are busy.". Для TfgButton нельзя было указать цветовой фон через свойство BackgroundName.
    • By Yaroslav Brovin
      Дата релиза:
      16 мая 2020
      Список изменений:
      ~ Потеря обратной совместимости: - Ресурсы: Переименовано TfgBitmapInfo.BitmapSource -> Source. - Ресурсы: Переименовано TfgBitmapInfo.TfgBitmapSource -> TfgSource. - Ресурсы: Убран конструктор по умолчанию из публичного доступа. - Ресурсы: GetAssetsNames теперь возвращает TArray<TfgAssetName>, а не TArray<string> - Ресурсы: Теперь метод нормализации имени темы является частью типа TfgThemeName. * Менеджер ресурсов: - Динамическая экономия памяти: - Добавлен новый метод TfgAsset.ReleaseFromMemory. Он отвечает за выгрузку из памяти, связанных с ресурсом "тяжелых" данных. Например, если вы больше не используете ресурс с изображением, то этот метод позволит вам выгрузить из памяти изображение, тем самым освободив оперативную память системе. - Теперь менеджер ресурсов может сам автоматически выгружать ресурсы из памяти, которые больше не используются. За это отвечает настройка TfgAssetsManager.AutoreleaseOptions.Enabled, которая по умолчанию отключена. - Если вы хотите предотвратить выгрузку ресурса из памяти, то это можно сделать через новое событие OnShouldReleaseFromMemoryEvent. - Теперь ресурс учитывает количество активных клиентов - тех, кто непосредственно использует ресурс. Все компоненты автоматически теперь работают в парадигме "захватил - освободил" ресурс через новые методы ресурса TfgAsset.Acquire и TfgAsset.Release. - Для динамически добавляемых графических ресурсов в рантайме предусмотрен сброс таких ресурсов на диск. За это отвечает настройка: TfgAssetsManager.AutoreleaseOptions.DumpTarget. - Добавлен новый демо проект: "Ресурсы" -> "Изображения" -> "Выгрузка изображений из памяти" - Исправлена утечка памяти, которая могла возникать при физическом удалении ресурса BitmapSet. - Добавлено больше xml-документации. - Общие не видимые глазу улучшения во внутренней реализации. * Визард нового проекта: - Добавлена страница выбора шаблона для создаваемого проекта. На текущий момент доступно два шаблона. Далее список будет расширяться. * TfgPageControl: - Добавлен новый метод для анимированного выбора вкладки по индексу GoToPage.
    • By Yaroslav Brovin
      Дата релиза:
      30 мая 2020
      Список изменений:
      * Поддержка Андроид сервисов: - В IDE разработан новый мастер управления подключаемыми Android сервисами. Он доступен через главное меню "Project" -> "FGX Android Services" - Через менеджер можно добавить один из двух видов сервисов: 1. Сервис с нативной частью, написанной на делфи. 2. Классический сервис без нативной части. - Менеджер автоматически заносит всю необходимую информацию о сервисе в Android манифест. - Теперь в FGX Native можно использовать проекты сервисов, написанные для FMX. Однако, только если они не используют FMX. - Вы можете использовать Android API из RTL или FGX Native. Оба Java-Delphi моста поддерживаются. - Android сервис создается таким же образом, как и для FMX: http://docwiki.embarcadero.com/RADStudio/Sydney/en/Creating_Android_Services - Общая информация о Android сервисах доступа в официальной документации: https://developer.android.com/guide/topics/fundamentals/services?hl=ru - Android сервисы поддерживают ядро FGX Native. Это значит, что вы можете использовать в сервисах Toasts, таймеры и другие фичи FGX Native. * Улучшения в Java-Delphi мосту: - Немного ускорена работа Java-листенеров. - Полноценная поддержка работы в Android сервисах. - Внутренние улучшения. * Общие улучшения: - Убрана зависимость реализации таймера от Activity. Теперь таймер можно использовать в Android сервисах. - Теперь регистрация сервисов ядра платформы в Андроиде происходит с учетом это Android активность или Android сервис. - Из реализации таймеров убрана зависимость от Android активности. Теперь таймеры можно использовать в Android сервисах. Однако, нужно иметь в виду, что в сервисах таймеры не следует использовать для длительной работы. Так как Android успыляет таймеры, что приводит к их засыпанию через определенный промежуток времени.  
    • By Yaroslav Brovin
      Download :
      Release d ate:
      30 May 2020
      * Support for Android services: - The IDE has a new wizard for managing connected Android services. It's available via main menu "Project" -> "FGX Android Services" - You can add followed service kinds via Android service manager: 1. Android Service with native part in so-library written on Delphi. 2. Classical Android service without native part. - The Manager automatically writes all the necessary information about the service in the Android manifest. - Now you can use service projects written for FMX in FGX Native. However, only if they don't use FMX. - You can user Android API from RTL or from FGX Native. Both bridges are supported. - Android service can be created by the same way as for FMX: http://docwiki.embarcadero.com/RADStudio/Sydney/en/Creating_Android_Services - General information about Android services is available in official Android documentation: https://developer.android.com/guide/topics/fundamentals/services?hl=ru - Android services supports FGX Native core. So you can use Toasts, timers and other FGX Native features. * Improvement in Java-Delphi bridge: - The work of Java listeners has been slightly accelerated. - Full support for working in Android services. - Internal improvements. * Other general improvements: - Removed the dependency of the timer implementation on the FGX Native ctivity. Now the timer can be used in Android services. - Now the registration of platform core services in Android is based on whether it is an Android activity or an Android service. - The dependency on Android activity is removed from the implementation of timers. Timers can now be used in Android services. However, you need to keep in mind that in the services of the timers should not be used for long-term operation. Since Android is slow down timers, which leads to them falling asleep after a certain period of time.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...