Jump to content

Yaroslav Brovin

Administrators
  • Posts

    2,567
  • Joined

  • Last visited

  • Days Won

    647

Posts posted by Yaroslav Brovin

  1. Download:
    The distributive is available by request only.

    Release date:
    22 April 2023


    New

    SVG Vector Images

    The support of vector SVG images was added. In the new version, a new type of asset has been added - SVG image. You can upload an SVG file to the assets designer for further use in components. Adding an SVG image is available in the Assets Designer: Project -> FGX Assets Manager. When using this image in components, the TfgBitmap bitmap image is automatically generated with the required current window scaling factor and the specified icon size. At the same time, the logical size (dp, without taking into account the zoom factor) of the icon is indicated in the SVG file editing window.

    We tested our SVG parser on icons from different vendors from MaterialDesign, Microsoft Visual Studio Icons and up to Icons 8. However, the SVG standard is quite large and writing a full-fledged parser in such a short time is not an easy task. Despite this, we would like you to share with us SVG files that cannot be read or displayed correctly. This will help us to expand the parser more quickly in the directions that are needed to display massive SVG images.

    When loading an image in the designer, the icon will have a special error icon if it is not supported.

    TfgCanvas

    Transformation matrix

    Now you can use transformation canvas. To get the current transformation matrix or set a new one, use the Canvas.Matrix property. With the help of transformation matrices, you can perform any Athenian transformations on the objects being drawn.

    For example, to scale the shape figure, you can use the following code:

    Canvas.Matrix := TMatrix.CreateScale(2) * Canvas.Matrix;

    Saving states

    Now, in the process of drawing on the canvas TfgCanvas, you can save and restore the state of the canvas. The brush parameters and the current transformation matrix are saved as the canvas state. A typical scenario for working with states may look like this:
     

    var  
      State: IFGXCanvasState;
      
    State := Canvas.SaveState;
    try
      // Modify transformation matrix, brushes
      // Painting
    finally
      Canvas.RestoreState(State);
    end;

    TfgSvgPath

    Arc commands were implemented in SVG Path. Now we supports all path commands Path by SVG standard.

    • Commands T and Q were fixed in TfgSvgPath.

    Nullable

    We added our implementation of nullable type FGX.Types.TfgNullable. This type allows to use null value.

    Improvements 🙌

    Assets Desginer

    Now you can search for SVG icons among the supplied Material Design icons. In addition, now you can drop any files directly into the designer's tree. Depending on the extension, the appropriate resource type will be created.

    TfgGradient

    The working with gradient points were improved. Now all points are stored in collection. You can get this collection via TfgGradient.Points property. Thanks to the use of the collection, it is now possible to use batch modification of points using the methods TfgGradient.Points.BeginUpdate and TfgGradient.Points.BeginUpdate.

    Android API

    New Android API class android.os.Environment was translated.

    Bug Fixes 🐛

  2. Скачать:
    Релиз доступен только по запросу.

    Дата релиза:
    22 апреля 2023


    Новое

    Векторные изображения SVG

    Добавлена поддержка векторных SVG изображений. В новой версии добавлен новый тип ресурсов - SVG изображение. В него вы можете загрузить SVG файл в дизайнере ресурсов для дальнейшего использования в компонентах. Добавление SVG изображения доступно в дизайнере ресурсов: Project -> FGX Assets Manager. При использовании данного изображения в компонентах, происходит автоматическое формирование растрового изображения TfgBitmap с требуемым текущим коэффициентом масштабирования окна и указанным размером иконки. При этом логический размер (dp, без учета коэффициента масштабирования) иконки указывается в окне редактирования SVG файла.

    Мы проверили наш SVG парсер на иконках разных поставщиков от MaterialDesign, Microsoft Visual Studio Icons и до Icons 8. Однако, стандарт SVG довольно большой и написать за такое короткое время полноценный парсер задача довольно непростая. Несмотря на это, мы хотели бы, чтобы вы делились с нами SVG файлами, которые не смогут прочитаться или отобразиться корректно. Это поможет нам оперативнее расширять парсер в тех направлениях, которые нужны для отображения массовых SVG изображений. 

    При загрузке изображения в дизайнере, у иконки появится специальный значок ошибки, если она не поддерживается.

    TfgCanvas

    Матрицы преобразования

    Добавлена возможность использовать матрицы преобразования. Для того, чтобы получить текущую матрицу преобразования или задать новую, используйте свойство TfgCanvas.Matrix. При помощи матриц преобразований, можно совершать любые аффинные преобразования над рисуемыми объектами.

    Например, чтобы выполнить масштабирование рисуемой фигуры в 2 раза, можно использовать такой код:

    Canvas.Matrix := TMatrix.CreateScale(2) * Canvas.Matrix;

    Сохранение состояний

    Теперь в процессе отрисовки на канве ```TfgCanvas``` вы можете сохранять и восстанавливать состояние канвы. В качестве состояния канвы сохраняются параметры кисти и текущая матрица преобразования. Типичный сценарий работы с состояниями может выглядеть так:

    var  
      State: IFGXCanvasState;
      
    State := Canvas.SaveState;
    try
      // Модифицируем матрицу трансформации, параметры кистей
      // Выполняем отрисовку
    finally
      Canvas.RestoreState(State);
    end;

    TfgSvgPath

    Реализована поддержка отрисовки дуг в SVG Path. Теперь мы поддерживаем все команды отрисовки Path по стандарту SVG.

    • Исправлено отображение команды T и Q в TfgSvgPath.

    Nullable

    Добавлена своя реализация типа FGX.Types.TfgNullable. Этот тип позволяет указать Null значение.

    Улучшения 🙌

    Дизайнер ассетов

    Теперь вы можете выполнять поиск SVG иконок среди поставляемых иконок Material Design. Помимо этого теперь вы можете кидать любые файлы прямо в дерево дизайнера. В зависимости от расширения, будет создан соответствующий тип ресурса.

    TfgGradient

    Улучшена работа с точками градиента. Теперь точки градиента хранятся в коллекции. Получить коллекцию точек можно через свойство TfgGradient.Points. Благодаря использования коллекции, теперь можно использовать пакетное изменение точек при помощи методов TfgGradient.Points.BeginUpdate и TfgGradient.Points.BeginUpdate.

    • Градиент с более, чем двумя точками, не рисовался (Android).

    Android API

    Добавлена трансляция типа android.os.Environment.

    Исправление ошибок 🐛

    • Like 4
    • Thanks 1
  3. 5 часов назад, Александр Клопоцкий сказал:

    First chance exception at $BE4E8F19. Exception class EJNIException with message 'java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/messaging/RemoteMessage;'. Process Faberlic.apk (23071)

    Нужно в настройках проекта поставил галку Push Notification. Указанный класс из Push-нотификации Firebase. Он подключается только при включении настройки в проекте.

    image.png

  4. Добрый вечер,

    В 20.04.2023 в 20:33, Александр Клопоцкий сказал:

    2. Добавляю в проект один (любой) модуль, например FB4D.Interfaces.pas, никакого кода еще не пишу,

    приложение собирается без ошибок, показывается заставка, и на ней приложение зависает.

    1. Что в логах приложения?
    2. Что в стектрейсе, если запускать с отладкой.
    В 20.04.2023 в 20:33, Александр Клопоцкий сказал:

    4. Тот же пример из билиотеки FB4D: "FSSimpleChat.dproj", компилирую FMX под Andriod 32-bit, ошибки при сборке.

    Вам нужно обновить список используемых Jar-библиотек в FMX. Для этого на ветке Libraries нужно в контекстном меню выбрать Reverts to default. После этого, указанные выше ошибки сборки, должны пройти.

  5. Добрый вечер,

    Только что, Piligrim сказал:

    Требуется новая покупка или это продление?

    Если захотите продлить на год, то это будет переход на годовую лицензию, но без покупки новой. Но на форуме нету возможности пока сделать апгрейд покупки с 3-х месячной до годичной. Так что если надумаете, обратитесь ко мне, я оформлю, как новую годовую но по цене годового продления.

    Спасибо 

    • Like 1
  6. Download:
    The distributive is available by request only.

    Release date:
    22 March 2023


    Improvements 🙌

    TfgBarcodeScanner

    • The new InvertedDataMatrix format was added for Android.
    • The Codabar format was added for iOS.

    Gradle

    The gradle version was updated up to 8.0. Now you can use the latest Java JDK version (Java 19).

    TfgMap

    The new method SnapshotAsync was added for taking map snapshot asynchronously.

    fgMap1.SnapshotAsync(procedure (const ASnapshot: TfgBitmap)
    begin
      TfgAssetsManager.Current.AddBitmap('screenshot', ASnapshot);
    end);

    Dialog demo samples

    • Added search for examples by name/components/description.
    • Scrolling the list of examples by the mouse wheel (Delphi 11.3).
    • Opening an example by double clicking.
    • Added the ability to open the example folder in Explorer.

    Android Headers

    The new headers Android.Api.Location was added for "android.location" package.

    Other

    Bug Fixes 🐛

    • When using frames, it is not possible to build the application.
    • Suppress the unsupported framework message when adding a new form and frames for Delphi 11.3.
    • FGX Native designer couldn't be loaded in RAD Studio 10.4.
    • The rendering TfgPageControl component border was added to IDE.
  7. Скачать:
    Релиз доступен только по запросу.

    Дата релиза:
    22 марта 2023


    Улучшения 🙌

    TfgBarcodeScanner

    • Добавлена поддержка нового формата штрихкодов InvertedDataMatrix для Android.
    • Добавлена поддержка формата Codabar для iOS.

    TfgMap

    Добавлен новый метод для асинхронного получения скриншота карты SnapshotAsync.

    fgMap1.SnapshotAsync(procedure (const ASnapshot: TfgBitmap)
    begin
      TfgAssetsManager.Current.AddBitmap('screenshot', ASnapshot);
    end);

    Gradle

    Обновили версию Gradle до 8.0. Теперь вы можете использовать последнюю версию Java JDK (Java 19).

    Диалог демо примеров

    • Добавлен поиск примеров по названию/компонентам/описанию.
    • Прокрутка списка примеров колесом мыши (Delphi 11.3).
    • Открытие примера по двойному клику.
    • Добавлена возможность открыть папку примера в проводнике.

    Android Headers

    Добавлены заголовочный файл Android.Api.Location для пакета "android.location".

    Прочее

    Исправление ошибок 🐛

    • При использовании фреймов невозможно собрать приложение.
    • Подавление сообщения о неподдерживаемом фреймворке при добавлении новой формы и фреймов для Delphi 11.3.
    • Дизайнер FGX Native не загружался в RAD Studio 10.4.
    • Like 3
    • Thanks 3
  8. Hello @Delphi64,

    As you can see Device Class in Form designer is just preview feature. It's special preset for testing your form on specified class. So this option just sets predefined size and style for form in designer and nothing more.

    Therefore, when you run the program on the device, it will take up the entire screen of the device, regardless of its type. 

    To make the program look good on different screens, use the power of FlexBox. FlexBox allows you to make automatic transfers of elements and make a real rubber layout.

    Some of our clients develop application for tablet. As far as I know, these are some kind of terminals for working with clients - restaurants, hotels, etc.

    Thank you,
    Yaroslav

  9. 42 минуты назад, Alex O сказал:

    для проверки в светлой и темной темах сделал цвета дубли по названию - работает

    По идеи, любые дополнительные цвета надо добавлять именно в тему, если цвет зависит от нее. В этом случае, одноименные ресурсы в папке темы, будут автоматически подхватываться при ее смене. Вы, наверное, про это и написали 🙂

    • Like 1
  10. Download:
    The distributive is available by request only.

    Release date:
    15 February 2023


    New

    Frames

    Added full support for Delphi frames.

    TfgMap 

    Added support for using third-party tiles in the TfgMap map, including Open Street Maps (OSM) tiles. To add tiles to maps, it is enough to throw the component TfgOSMMapTileProvider (when using OSM tiles) or TfgEventMapTileProvider (when adding your tiles) on the form and bind it to the map via the new property TfgMap.TileProvide.

    Firebase Analytics

    The new component TfgFirebaseAnalytics was added for collecting usage analytics of your application.

    This component allows you to collect information about the use of your application by users. For example, you can define:

    • Which form users open most often.
    • Which versions of your application are running successfully.
    • How many users launched the app for the first time.
    • What purchases are most often made in your app.
    • Which components are most often interacted with.
    • And much more.

    Useful information:

    TfgForm

    Two new events OnActivated and OnDeactivated were added to detect when a form comes to the foreground and leaves the foreground on the screen.

    Dark Theme

    Added the ability to track the switching of the system theme using the new event TfgForm.OnSystemAppearanceChanged. The event is triggered when the operating system changes its appearance and it is indicated that the FGX Native application supports a dark theme.

    If you would like to use dark theme in your FGX Native application, you have to do:

    • iOS: change value of property UIUserInterfaceStyle on Automatic for all iOS project configurations in "Project -> Options... -> Version Info".
    • Android: change base theme of application in "styles.xml" file from "Theme.AppCompat.Light" to "Theme.MaterialComponents.DayNight".

    Look at the updated sample for understanding, how to implement automatic switching theme based on OS theme: "Resources" -> "Themes" -> "Using multiple themes".

    In addition, you can request the operating system appearance parameters at any time via FGX.SystemInfo.TfgSystemInfo.Appearance.

    New components icons

    New icons were added for TfgMap, TfgLottieImage, TfgCamera, TfgCameraPreview, TfgBarcode, TfgBarcodeScanner, TfgVideoControl, TfgCollectionView, TfgListMenu.

    Improvements 🙌

    Form designer

    Added the ability to change only the width or only the height of the form/frames in the form designer.

    TfgBarcodeScanner

    Now the component returns the type of the recognized barcode via the TfgBarcode.Format.

    Java-Delphi bridge

    Added thread safety when using Java types in different threads for the first time at the same time.

    Bug Fixes 🐛

    • Like 2
  11. Скачать:
    Релиз доступен только по запросу.

    Дата релиза:
    15 февраля 2023


    Новое

    Фреймы

    Добавлена полноценная поддержка Delphi фреймов.

    TfgMap 

    Добавлена поддержка использования сторонних тайлов в карте TfgMap в том числе тайлы OpenStreetMap (OSM). Чтобы добавить тайлы в карты, достаточно кинуть компонент TfgOSMMapTileProvider (при использовании тайлов OSM) или TfgEventMapTileProvider (при добавлении своих тайлов) на форму и привязать его к карте через новое свойство TfgMap.TileProvide

    Firebase Analytics

    Добавлен новый компонент для сборка аналитики использования вашего приложения TfgFirebaseAnalytics.

    Данный компонент позволяет собрать информацию об использовании вашего приложения пользователями. Например, вы можете определить:

    • Какую форму пользователи открывают чаще всего.
    • Какие версии вашего приложения успешно запускаются.
    • Сколько пользователей первый раз запустили приложение.
    • Какие покупки чаще всего делают в вашем приложении.
    • С какими компонентами чаще всего взаимодействуют. 
    • И многое другое.

    Полезная информация:

    TfgForm

    Добавлены два события OnActivated и OnDeactivated для определения, когда форма выходит на передний план и уходит с переднего плана на экране.

    Темная тема

    Добавлена возможность отслеживать переключение системной темы при помощи нового события TfgForm.OnSystemAppearanceChanged. Событие вызывается, когда операционная система меняет свое представление и указано, что FGX Native приложение поддерживает темную тему.

    Чтобы указать, что FGX Native поддерживает темную тему необходимо:

    • Для iOS поменять значение ключа UIUserInterfaceStyle на Automatic для всех iOS конфигураций проекта в "Project -> Options... -> Version Info".
    • Для Android поменять базовую тему приложения в файле "styles.xml" с "Theme.AppCompat.Light" на "Theme.MaterialComponents.DayNight" 

    Вариант реализации автоматической смены темы приложения на основании системной темы, смотрите в обновленном примере: "Ресурсы" -> "Темы" -> "Использование нескольких тем".

    Помимо этого, вы можете в любой момент запросить параметры отображения операционной системы через FGX.SystemInfo.TfgSystemInfo.Appearance.

    Иконки компонентов

    Добавлены иконки для компонентов TfgMap, TfgLottieImage, TfgCamera, TfgCameraPreview, TfgBarcode, TfgBarcodeScanner, TfgVideoControl, TfgCollectionView, TfgListMenu.

    Улучшения 🙌

    Дизайнер форм

    Добавлена возможность изменять только ширину или только высоту формы/фреймы в дизайнере форм.

    TfgBarcodeScanner

    Теперь при компонент возвращает тип распознанного штрих кода через свойство TfgBarcode.Format.

    Java-Delphi мост

    Добавлена потокобезопасность при одновременном первом использовании Java типов в разных потоках.

    Исправление ошибок 🐛

    • Like 7
    • Thanks 3
  12. 10 часов назад, Dmitriy сказал:

    А это нормально, что теперь в заголовок каждого файла pas автоматически вставляется FGX.Application ?

    Модуль вставляет только тогда, когда это нужно, а не всегда. Если какой-то компонент использует что-то из этого модуля, то он автоматически добавляется. Например, использование компонента TfgApplicationEvents приводит к автоматическому добавлению модуля.

    10 часов назад, Dmitriy сказал:

    apk пересобранного приложения вырос c 11 Mb до 30Mb

    Если предположить по вашему утверждению, что просто пересборка вашего приложения добавила вам 19 Мб, то вот собранный демонстрационный пример и он весит около 14 Мб.  Да, мы постоянно добавляем новый функционал и сделали миграцию на AndroidX, это безусловно увеличивает размер apk, но не в три раза, как у вас получается. 

    image.png

  13. Download:
    The distributive is available by request only.

    Release date:
    18 January 2023


    New

    Firebase Push-notifications for iOS

    The Firebase implementation was added for Push-notificatino service. In case if you are using Firebase (FCM), iOS returns Firebase device token instead of APNS. So additional token conversion is not required.

    Supporting Android Libraries

    Now you can easilier add any Android library only by full qualified name, without having to search for JAR/AAR files and all dependencies. To do this, use the Library management manager available from the main menu "'Project -> Android FGX Libraries". 

    Improvements 🙌

    Android API USB

    The new Android API header was added for working with USB: Android.Api.Hardware.USB.

    Bug Fixes 🐛

    • Building apps for Android in Application Store mode could fail if the password contained some illegal characters (Android).
    • If at least two services were used in the project: Push notifications, advertising or in-app purchases, then the application crashed at startup (Android).
    • The displaying of FlexBox designer for AlignmentChildren property was improved for HiDPI screens.
    • The demo sample was fixed: "Android API -> AlarmManager".
    • In case of usage TfgPushNotificationService component with ServiceName <> default, Android application could crashed on stratup (Android).
    • Like 2
    • Thanks 1
  14. Скачать:
    Релиз доступен только по запросу.

    Дата релиза:
    18 января 2023


    Новое

    Firebase Push-уведомления для iOS

    Добавлена реализация сервиса push-уведомлений на базе Firebase. Теперь при использовании Firebase (FCM), iOS так же может возвращать Firebase токен устройства. Дополнительная конвертация APNS токена устройства в Firebase не требуется.

    Поддержка Android-библиотек

    Теперь вы можете с легкостью подключить любую Android-библиотеки только по имени, без необходимости искать файлы JAR/AAR и всех зависимостей. Для этого воспользуйтесь менеджером управления библиотеками доступный из главного меню Project -> FGX Android Libraries.

    Улучшения 🙌

    Android API USB

    Добавлены новые заголовочные файлы для работы с USB под Android: Android.Api.Hardware.USB.

    Исправление ошибок 🐛

    • Сборка приложений под Android для конфигурации Application Store могла завершаться неудачей, если в пароле содержались некоторые запрещенные символы.
    • Если в проекте использовались хотя бы два сервиса: Push-уведомления, реклама или встроенные покупки, то приложение при старте падало.
    • Улучшено отображение FlexBox дизайнера для `AlignmentChildren` свойство на HiDPI экранах.
    • Исправлен демонстрационный пример "Android API -> AlarmManager"
    • При использовании компонента TfgPushNotificationService и названия ServiceName, отличного от 'default', могла наблюдаться ошибка Android приложения на старте (Android).
    • Like 4
    • Thanks 1
  15. Hello,

    Android native EditText and iOS TextView supports rich format. However, I cannot find information about export RTF format to internal for usage in EditText for example. We are using this internal format for supporting HTML fro example.

    • Like 1
  16. 7 минут назад, Александр Клопоцкий сказал:

    По вашему примеру, как прописать класс фрейма в dfm файле формы?

    Так код фреймов не выпущен. Поэтому сейчас даже если прописать, ничего не будет. Могу в принципе закончить текущий вариант и встроить его в либу, чтобы хотя бы руками можно было бы пока через dfm встраивать

  17. Добрый вечер,

    Мои пять копеек на счет фреймов. Я согласен, что фреймы нужны и полезны. Да, можно встраивать формы, но куда проще кинуть фрейм, чем кодом встраивать форму. Более того, у меня уже почти реализованный вариант фреймов. Однако, все уперлось в то, что RAD Studio не дает API для добавления фреймов для сторонних фреймворков. Поэтому на текущий момент, я научил ее создавать фреймы и работать с ними в дизайнере. Однако, кинуть фрейм на форум через палитру компонентов нельзя. Единственный способ, это руками прописать класс фрейма в dfm файле формы, что для публичного релиза не годится.

    Чтобы не быть голословным:

    image.pngimage.png

     

  18. На здоровье 🙂

    3 минуты назад, Kreon сказал:

    да, это вариант был-бы неплох,  Есть лицензия на софт, так генерится  ключ, отправляешь, поддержка возвращает второй ключ. Диск умер, отправил первый ключ, они подтвердили что железо то-же, выслали второй ключ.

    В данном случае подтверждение никакое не требуется. Мы вам верим 🙂

    • Like 1
  19. Только что, Kreon сказал:

    Это была последняя  лицензия,  одну потерял при тестирование, пришлось систему переустанавливать, вторая на ноуте, ну  и третья рабочая, на старом диске.

    Я увеличил вам доступное количество активаций. Пробуйте еще разок. 

  20. Добрый день,

    35 минут назад, Kreon сказал:

    Заимел новый  SSD диск, перенес систему  на новый диск, при запуске Delphi ошибка лицензии.

    Да, смена железа влияет на выданную лицензию. Удалите файл лицензии в каталоге "C:\ProgramData\FGXNative\License" соответствующий вашей версии FGX Native и перезапустите Delphi. После этого выполните активацию продукта еще раз при помощи выданного ранее кода активации.

    P.S. Переустановка не поможет.

    Спасибо.

×
×
  • Create New...